מייצג את השעה האזרחית (או לפעמים את השעה הפיזית).
הסוג הזה יכול לייצג זמן אזרחי באחת מכמה דרכים אפשריות:
- כשהערך של 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 |
שדות | |
---|---|
year |
זה שינוי אופציונלי. השנה של התאריך. חייב להיות בין 1 ל-9999, או 0 אם מציינים תאריך ושעה ללא שנה. |
month |
זה שינוי אופציונלי. החודש בשנה. הערך צריך להיות בין 1 ל-12, או 0 אם מציינים תאריך ושעה ללא חודש. |
day |
זה שינוי אופציונלי. היום בחודש. חייב להיות בין 1 ל-31 ותקף לשנה ולחודש, או 0 אם מציינים תאריך ושעה ללא יום. |
hours |
זה שינוי אופציונלי. שעות היום בפורמט של 24 שעות. הערך צריך להיות בין 0 ל-23. ברירת המחדל היא 0 (חצות). יכול להיות ש-API יאפשר את הערך '24:00:00' בתרחישים כמו שעת סגירת העסק. |
minutes |
זה שינוי אופציונלי. הדקות של השעה ביום. הערך חייב להיות בין 0 ל-59, ברירת המחדל היא 0. |
seconds |
זה שינוי אופציונלי. השניות של הדקות בפונקציית הזמן. בדרך כלל צריך להיות בין 0 ל-59, ערך ברירת המחדל הוא 0. ממשק API עשוי לאפשר את הערך 60 אם הוא מאפשר שניות רגילות. |
nanos |
זה שינוי אופציונלי. פלחי שניות בננו-שניות. הערך חייב להיות בין 0 ל-999,999,999. ברירת המחדל היא 0. |
שדה האיחוד time_offset . זה שינוי אופציונלי. מציין את הסטייה משעון UTC או את אזור הזמן של DateTime. חשוב לבחור בזהירות בין שתי האפשרויות האלה, מכיוון שנתוני אזור הזמן עשויים להשתנות בעתיד (לדוגמה, מדינה משנה את תאריכי ההתחלה/הסיום של שעון הקיץ, ותאריכי זמן עתידיים בטווח המושפע כבר אוחסנו). אם השדה הזה חסר, המערכת מתייחסת ל-DateTime לפי הזמן המקומי. הערך של time_offset יכול להיות רק אחת מהאפשרויות הבאות: |
|
utc |
קיזוז ל-UTC. הערך צריך להיות מספר שלם של שניות, בין 18 שעות לפני כן ל-18 שעות לאחר מכן. לדוגמה, אם ההיסט מ-UTC הוא -4:00, הוא יופיע כ-{ seconds: -14400 }. משך הזמן בשניות, עם עד תשע ספרות עשרוניות, שמסתיימים ב-' |
time |
אזור הזמן. |