DateTime

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

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

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

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

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

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

string (Duration format)

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

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

timeZone

object (TimeZone)

אזור הזמן.