DateTime

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

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

  • אם הערך של 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 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 או את אזור הזמן של התאריך והשעה. חשוב לבחור בקפידה בין האפשרויות האלה, כי יכול להיות שנתוני אזור הזמן ישתנו בעתיד (לדוגמה, מדינה משנה את תאריכי ההתחלה והסיום של שעון הקיץ, ותאריכי שעה עתידיים בטווח המושפע כבר אוחסנו). אם משמיטים את הפרמטר, התאריך והשעה נחשבים לזמן המקומי. הערך 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. לדוגמה, America/New_York.

version

string

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