DateTime

代表民間時間 (或偶爾是實體時間)。

這種類型的代表方式可能包括下列幾種民生時間:

  • 設定 utcOffset 且未設定 timeZone 時:在日曆日的民用時間 (與世界標準時間相差的偏移)。
  • 設定 timeZone 且未設定 utcOffset 時:在特定時區的日曆上,每一天的民用時間。
  • 不設定 timeZone 或 utcOffset 時:在當地時間的日曆上,每個民用時間。

該日期是與希臘的 Google 日曆相關。

如果該年、月或日為 0,系統會將該日期視為不指定特定年、月或日。

所有日期和時間欄位已設定且 time_offset 的任一類型都設定時,這個類型也可用於表示實際時間。建議你改用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 的 UTC 偏移或時區。請謹慎選擇,因為時區資料未來可能會有所變動 (例如,國家/地區會修改 DST 開始/結束日期,而受影響日期範圍的未來日期時間已儲存)。如果省略,系統會將 DateTime 視為當地時間。time_offset 只能是下列其中一項:
utcOffset

string (Duration format)

世界標準時間偏移。必須是 -18 小時到 +18 小時之間的整數,舉例來說,世界標準時間 -4:00 的偏移值為 { 秒:-14400 }。

持續時間以秒為單位,最多 9 個小數位數,結尾為「s」。範例:"3.5s"

timeZone

object (TimeZone)

時區。

TimeZone

代表 IANA Time Zone Database 中的時區。

JSON 表示法
{
  "id": string,
  "version": string
}
欄位
id

string

IANA 時區資料庫時區,例如「America/New_York」。

version

string

選用,IANA 時區資料庫版本號碼,例如「2019a」。