DateTime

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

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

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

התאריך הוא יחסי ליומן הגרגוריאני הפרוֹלֶפטי.

אם השנה, החודש או היום הם 0, התאריך והשעה נחשבים כחסרי שנה, חודש או יום ספציפיים, בהתאמה.

אפשר להשתמש בסוג הזה גם כדי לייצג זמן פיזי אם כל שדות התאריך והשעה מוגדרים ואחד מהמקרים של 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)

אזור זמן.