DateTime

代表民用時間 (或偶爾代表實際時間)。

這個型別可以透過幾種可能的方式表示民用時間:

  • 設定 utcOffset 但未設定 timeZone:日曆上某一天與世界標準時間有特定時差的民用時間。
  • 如果已設定 timeZone 但未設定 utcOffset:特定時區中某個日曆日期的民用時間。
  • 如果未設定 timeZone 和 utcOffset:日曆上某一天以當地時間為準的民用時間。

日期以西曆為主,

如果年、月或日為 0,則 DateTime 會分別視為沒有特定年、月或日。

如果設定了所有日期和時間欄位,且設定了 time_offset oneof 的任一情況,這種類型也可用於表示實際時間。建議改用 Timestamp 訊息表示實際時間。如果您的用途也需要儲存使用者的時區,可以在另一個欄位中完成。

這類型的彈性可能超出某些應用程式的需求。請務必記錄並驗證應用程式的限制。

JSON 表示法
{
  "year": integer,
  "month": integer,
  "day": integer,
  "hours": integer,
  "minutes": integer,
  "seconds": integer,
  "nanos": integer,

  // Union field time_offset can be only one of the following:
  "utcOffset": string,
  "timeZone": {
    object (TimeZone)
  }
  // End of list of possible types for union field time_offset.
}
欄位
year

integer

(選用步驟) 日期年份。必須為 1 到 9999;如要指定不含年份的日期時間,請輸入 0。

month

integer

(選用步驟) 月份。必須為 1 到 12;如要指定不含月份的日期時間,請輸入 0。

day

integer

(選用步驟) 當月第幾日。必須為 1 到 31,並屬於有效的年和月;如要指定不含日期的日期時間,請輸入 0。

hours

integer

(選用步驟) 一天中的小時,採用 24 小時制。值應介於 0 到 23 之間,預設為 0 (午夜)。API 可選擇允許使用「24:00:00」這類的值來表示營業打烊時間等情況。

minutes

integer

(選用步驟) 一天中,每小時內的分鐘。值必須介於 0 到 59 之間,預設為 0。

seconds

integer

(選用步驟) 在當下時間中,該分鐘的秒數。正常情況下,值必須介於 0 到 59 之間,預設為 0。如果 API 允許閏秒,則可允許值為 60。

nanos

integer

(選用步驟) 秒數的小數,以奈秒為單位。值必須介於 0 到 999,999,999 之間,預設為 0。

聯集欄位 time_offset。(選用步驟) 指定 DateTime 的世界標準時間偏移量或時區。請謹慎選擇,因為時區資料日後可能會變更 (例如,某個國家/地區修改日光節約時間的開始/結束日期,而受影響範圍內的未來 DateTime 已儲存)。如果省略,系統會將 DateTime 視為當地時間。time_offset 只能是下列其中一項:
utcOffset

string (Duration format)

世界標準時間時差。必須是整數秒數,介於 -18 小時和 +18 小時之間。舉例來說,UTC 偏移量 -4:00 會表示為 { seconds: -14400 }。

時間長度以秒為單位,最多可有 9 個小數位數,並應以「s」結尾,例如:"3.5s"

timeZone

object (TimeZone)

時區。