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