DateTime

מייצג זמן אזרחי (או לפעמים זמן פיזי).

סוג כזה יכול לייצג זמן אזרחי באחת מכמה דרכים אפשריות:

  • כאשר מוגדר utcOffset ו-timeZone לא מוגדר: שעה אזרחית ביום קלנדרי עם הפרש מסוים מ-UTC.
  • כאשר timeZone מוגדר וה-utcOffset לא מוגדר: שעה אזרחית ביום קלנדרי באזור זמן מסוים.
  • כשלא הוגדר אזור זמן או utcOffset: זמן אזרחי ביום קלנדרי לפי זמן מקומי.

התאריך הוא יחסי ללוח השנה הגרגוריאני הפרולפטי.

אם הערך של השנה, החודש או היום הוא 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. זה שינוי אופציונלי. מציין את הפרש השעות לעומת UTC או את אזור הזמן של DateTime. חשוב לבחור ביניהם בקפידה, כי נתוני אזור הזמן עשויים להשתנות בעתיד (לדוגמה, מדינה משנה את תאריכי ההתחלה והסיום של שעון קיץ, ו-DateTimes עתידיים בטווח המושפע כבר אוחסנו). אם לא מציינים את הפרמטר הזה, המאפיין DateTime ייחשב כשעון המקומי. time_offset יכול להיות רק אחת מהאפשרויות הבאות:
utcOffset

string (Duration format)

קיזוז UTC. חייב להיות שניות שלמות, בין -18 שעות ל-18 שעות+. לדוגמה, קיזוז UTC של -4:00 מיוצג באופן הבא: { seconds: -14400 }.

משך זמן בשניות עם עד תשע ספרות עשרוניות, שמסתיים ב-'s'. לדוגמה: "3.5s".

timeZone

object (TimeZone)

אזור זמן.

TimeZone

מייצג אזור זמן ממסד הנתונים של אזור זמן IANA.

ייצוג JSON
{
  "id": string,
  "version": string
}
שדות
id

string

אזור הזמן ב-IANA Time Zone Database, למשל. 'America/New_York'.

version

string

זה שינוי אופציונלי. מספר הגרסה של מסד הנתונים של אזור הזמן IANA, למשל '2019a'.