DateTime

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

此型別能以幾種可能方式表示民用時間:

  • 設定 utcOffset 且 timeZone 未設定時:日曆日期的民用時間,且特定與世界標準時間的偏移值。
  • 設定 timeZone 且未設定 utcOffset 時:特定時區在日曆日期中的民用時間。
  • 如果未指定 timeZone 或 utcOffset 時:一個日曆天以當地時間為準的民用時間。

日期以{0}公曆為主。

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

如果設定了所有日期和時間欄位,且已設定 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 時區。請謹慎選擇時區,因為時區資料日後可能會改變 (例如:國家/地區修改了 DST 的開始/結束日期,以及受影響時間範圍內的未來日期時間)。如果省略,DateTime 會視為當地時間。time_offset 只能是下列其中一項:
utcOffset

string (Duration format)

世界標準時間偏移。必須為整數,介於 -18 小時至 +18 小時之間。舉例來說,世界標準時間偏移 -4:00 應以 { seconds: -14400 } 表示。

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

timeZone

object (TimeZone)

時區。

TimeZone

代表 IANA 時區資料庫中的時區。

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

string

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

version

string

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