DateTime

यह सिविल टाइम (या कभी-कभी फ़िज़िकल टाइम) को दिखाता है.

इस टाइप का इस्तेमाल, सिविल टाइम को इन तरीकों से दिखाने के लिए किया जा सकता है:

  • जब 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 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 (आधी रात) पर सेट होता है. एपीआई, कारोबार के बंद होने के समय जैसे मामलों के लिए, "24:00:00" वैल्यू को अनुमति दे सकता है.

minutes

integer

ज़रूरी नहीं. दिन के समय के मिनट. यह 0 से 59 के बीच होना चाहिए. इसकी डिफ़ॉल्ट वैल्यू 0 होती है.

seconds

integer

ज़रूरी नहीं. समय के मिनट का सेकंड. आम तौर पर, इसकी वैल्यू 0 से 59 के बीच होनी चाहिए. डिफ़ॉल्ट रूप से, इसकी वैल्यू 0 होती है. अगर कोई एपीआई लीप-सेकंड की अनुमति देता है, तो वह वैल्यू 60 की अनुमति दे सकता है.

nanos

integer

ज़रूरी नहीं. नैनोसेकंड में सेकंड के फ़्रैक्शन. यह 0 से 99,99,99, 999 के बीच की कोई संख्या होनी चाहिए. डिफ़ॉल्ट रूप से इसकी वैल्यू 0 होती है.

यूनियन फ़ील्ड time_offset. ज़रूरी नहीं. इससे DateTime का यूटीसी ऑफ़सेट या टाइम ज़ोन तय होता है. इनमें से किसी एक को ध्यान से चुनें. ऐसा इसलिए, क्योंकि हो सकता है कि आने वाले समय में टाइम ज़ोन का डेटा बदल जाए. उदाहरण के लिए, कोई देश डीएसटी शुरू/खत्म होने की तारीखों में बदलाव करता है. साथ ही, प्रभावित रेंज में आने वाले आने वाले समय के DateTimes पहले ही सेव किए जा चुके हैं. अगर इसे शामिल नहीं किया जाता है, तो DateTime को स्थानीय समय माना जाता है. time_offset इनमें से सिर्फ़ एक हो सकता है:
utcOffset

string (Duration format)

यूटीसी ऑफ़सेट. यह पूर्णांक सेकंड में होना चाहिए. इसकी वैल्यू -18 घंटे से +18 घंटे के बीच होनी चाहिए. उदाहरण के लिए, UTC ऑफ़सेट -4:00 को { seconds: -14400 } के तौर पर दिखाया जाएगा.

यह अवधि सेकंड में होती है. इसमें नौ दशमलव अंक तक हो सकते हैं. इसके आखिर में 's' होता है. उदाहरण: "3.5s".

timeZone

object (TimeZone)

टाइम ज़ोन.

TimeZone

यह IANA टाइम ज़ोन डेटाबेस से किसी टाइम ज़ोन को दिखाता है.

JSON के काेड में दिखाना
{
  "id": string,
  "version": string
}
फ़ील्ड
id

string

IANA टाइम ज़ोन डेटाबेस का टाइम ज़ोन. उदाहरण के लिए, "America/New_York".

version

string

ज़रूरी नहीं. IANA टाइम ज़ोन डेटाबेस का वर्शन नंबर. उदाहरण के लिए, "2019a".