代表民用時間 (有時是實際時間)。
這種類型可透過以下幾種方式表示民間時間:
- 已設定 utcOffset 且未設定 timeZone 時:日曆天中的民用時間,與世界標準時間的偏移量。
- 已設定 timeZone 且未設定 utcOffset 時:特定時區的日曆日中民用時間。
- 如果時區和 utcOffset 均未設定,則:當地時間某一天的民用時間。
日期以公曆為基準。
如果年、月或日為 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 。選用設定。指定 UTC 偏移或 DateTime 時區。請謹慎選擇,因為時區資料未來可能會變更 (例如,某個國家/地區修改了 DST 開始/結束日期,而該國家/地區內的未來 DateTime 已經儲存完畢)。如果省略日期時間,系統會將 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」。 |