代表民用時間 (或偶爾實際時間)。
此型別能以幾種可能方式表示民用時間:
- 設定 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 |
欄位 | |
---|---|
year |
選用設定。日期。必須介於 1 至 9999 之間;如要指定不含年份的日期日期時間,則為 0。 |
month |
選用設定。月份。必須為 1 到 12;如果指定不含月份的日期時間,則為 0。 |
day |
選用設定。日期。必須介於 1 到 31 之間,且有效的年份和月份;如果指定不含日期的日期日期時間,則為 0。 |
hours |
選用設定。一天的營業時間,以 24 小時製表示。它應介於 0 到 23 之間,預設為 0 (午夜)。API 可選擇允許使用「24:00:00」這類的值來表示營業打烊時間等情況。 |
minutes |
選用設定。一天內的分鐘數。必須介於 0 至 59 之間,預設值為 0。 |
seconds |
選用設定。時間的秒數。通常必須介於 0 至 59 之間,預設值為 0。如果 API 允許閏秒,則可允許值為 60。 |
nanos |
選用設定。秒數的小數,以奈秒表示。必須介於 0 至 999,999,999 之間,預設值為 0。 |
聯集欄位 time_offset 。選用設定。指定世界標準時間偏移量或 DateTime 時區。請謹慎選擇時區,因為時區資料日後可能會改變 (例如:國家/地區修改了 DST 的開始/結束日期,以及受影響時間範圍內的未來日期時間)。如果省略,DateTime 會視為當地時間。time_offset 只能是下列其中一項: |
|
utcOffset |
世界標準時間偏移。必須為整數,介於 -18 小時至 +18 小時之間。舉例來說,世界標準時間偏移 -4:00 應以 { seconds: -14400 } 表示。 持續時間以秒為單位,最多 9 個小數位數,結尾為「 |
timeZone |
時區。 |
TimeZone
代表 IANA 時區資料庫中的時區。
JSON 表示法 |
---|
{ "id": string, "version": string } |
欄位 | |
---|---|
id |
IANA 時區資料庫時區,例如「America/New_York」。 |
version |
選用設定。IANA 時區資料庫版本號碼,例如「2019a」。 |