מייצג זמן אזרחי (או לפעמים זמן פיזי).
סוג כזה יכול לייצג זמן אזרחי באחת מכמה דרכים אפשריות:
- כאשר מוגדר 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 |
שדות | |
---|---|
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. חשוב לבחור ביניהם בקפידה, כי נתוני אזור הזמן עשויים להשתנות בעתיד (לדוגמה, מדינה משנה את תאריכי ההתחלה והסיום של שעון קיץ, ו-DateTimes עתידיים בטווח המושפע כבר אוחסנו). אם לא מציינים את הפרמטר הזה, המאפיין DateTime ייחשב כשעון המקומי. time_offset יכול להיות רק אחת מהאפשרויות הבאות: |
|
utcOffset |
קיזוז UTC. חייב להיות שניות שלמות, בין -18 שעות ל-18 שעות+. לדוגמה, קיזוז UTC של -4:00 מיוצג באופן הבא: { seconds: -14400 }. משך זמן בשניות עם עד תשע ספרות עשרוניות, שמסתיים ב-' |
timeZone |
אזור זמן. |
TimeZone
מייצג אזור זמן ממסד הנתונים של אזור זמן IANA.
ייצוג JSON |
---|
{ "id": string, "version": string } |
שדות | |
---|---|
id |
אזור הזמן ב-IANA Time Zone Database, למשל. 'America/New_York'. |
version |
זה שינוי אופציונלי. מספר הגרסה של מסד הנתונים של אזור הזמן IANA, למשל '2019a'. |