常用時(または物理的な時間)を表します。
この型は、次のいずれかの方法で常用時を表します。
- utcOffset が設定され、timeZone が未設定の場合: UTC から特定のオフセットを持つ暦日の常用時。
- 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 |
フィールド | |
---|---|
year |
省略可。日付の年。1 ~ 9999 にする必要があります。年のない日時を指定する場合は 0 にします。 |
month |
省略可。月。1 ~ 12 にする必要があります。月のない日時を指定する場合は 0 にする必要があります。 |
day |
省略可。日。1 ~ 31 の値で、年と月に対して有効か、日なしの日時を指定する場合は 0 にする必要があります。 |
hours |
省略可。時間(24 時間形式)。0 ~ 23 の範囲で指定します。デフォルトは 0(午前 0 時)です。API ではビジネスの終了時間などのシナリオにおいて、値 "24:00:00" を許可することもできます。 |
minutes |
省略可。分。0 ~ 59 にする必要があります。デフォルトは 0 です。 |
seconds |
省略可。秒。通常は 0 ~ 59 にする必要があります。デフォルトは 0 です。API がうるう秒を許可する場合、値 60 が許可されます。 |
nanos |
省略可。秒の小数部分(ナノ秒単位)。0 ~ 999,999,999 の範囲で指定する必要があります。デフォルトは 0 です。 |
共用体フィールド time_offset 。省略可。DateTime の UTC オフセットまたはタイムゾーンを指定します。タイムゾーン データは将来変更される可能性があることを考慮して慎重に選択してください(たとえば、国によって DST の開始日と終了日が変更され、影響を受ける範囲内の将来の DateTime がすでに保存されている場合など)。省略した場合、DateTime は現地時間とみなされます。time_offset は次のいずれかになります。 |
|
utcOffset |
UTC オフセット。秒(-18 時間~+18 時間)で指定します。たとえば、UTC オフセットが -4:00 の場合は、{ seconds: -14400 } となります。
|
timeZone |
タイムゾーン。 |
TimeZone
IANA タイムゾーン データベースのタイムゾーンを表します。
JSON 表現 |
---|
{ "id": string, "version": string } |
フィールド | |
---|---|
id |
IANA タイムゾーン データベースのタイムゾーン(例: "America/New_York")。 |
version |
省略可。IANA タイムゾーン データベースのバージョン番号(例: "2019a")。 |