यह सिविल टाइम (या कभी-कभी फ़िज़िकल टाइम) को दिखाता है.
इस टाइप का इस्तेमाल, सिविल टाइम को इनमें से किसी एक तरीके से दिखाने के लिए किया जा सकता है:
- जब utcOffset सेट हो और timeZone सेट न हो: कैलेंडर के किसी दिन का सिविल टाइम, जो यूटीसी से किसी खास ऑफ़सेट पर हो.
- जब 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 (आधी रात) पर सेट होता है. एपीआई, कारोबार के बंद होने के समय जैसे मामलों के लिए, "24:00:00" वैल्यू को अनुमति दे सकता है. |
minutes |
ज़रूरी नहीं. दिन के समय के मिनट. यह 0 से 59 के बीच होना चाहिए. इसकी डिफ़ॉल्ट वैल्यू 0 होती है. |
seconds |
ज़रूरी नहीं. समय के मिनट का सेकंड. आम तौर पर, इसकी वैल्यू 0 से 59 के बीच होनी चाहिए. डिफ़ॉल्ट रूप से, इसकी वैल्यू 0 होती है. अगर कोई एपीआई लीप-सेकंड की अनुमति देता है, तो वह वैल्यू 60 की अनुमति दे सकता है. |
nanos |
ज़रूरी नहीं. नैनोसेकंड में सेकंड के हिस्से. यह 0 से 999,999,999 के बीच की कोई संख्या होनी चाहिए. डिफ़ॉल्ट रूप से इसकी वैल्यू 0 होती है. |
यूनियन फ़ील्ड time_offset. ज़रूरी नहीं. इससे DateTime का यूटीसी ऑफ़सेट या टाइम ज़ोन तय होता है. इनमें से किसी एक को ध्यान से चुनें. ऐसा इसलिए, क्योंकि हो सकता है कि आने वाले समय में टाइम ज़ोन का डेटा बदल जाए. उदाहरण के लिए, कोई देश डीएसटी शुरू/खत्म होने की तारीखों में बदलाव करता है. साथ ही, प्रभावित रेंज में आने वाले समय के DateTimes पहले ही सेव किए जा चुके हैं. अगर इसे शामिल नहीं किया जाता है, तो DateTime को स्थानीय समय में माना जाता है. time_offset इनमें से सिर्फ़ एक हो सकता है: |
|
utcOffset |
यूटीसी ऑफ़सेट. यह वैल्यू, पूरे सेकंड में होनी चाहिए. साथ ही, यह -18 घंटे और +18 घंटे के बीच होनी चाहिए. उदाहरण के लिए, -4:00 के यूटीसी ऑफ़सेट को { seconds: -14400 } के तौर पर दिखाया जाएगा. यह अवधि सेकंड में होती है. इसमें नौ दशमलव अंक तक हो सकते हैं. इसके आखिर में ' |
timeZone |
टाइम ज़ोन. |