DateTime

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

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

  • जब utcOffset सेट हो और टाइमज़ोन सेट न हो: यूटीसी से किसी खास ऑफ़सेट के साथ कैलेंडर दिन का एक सिविल टाइम.
  • जब टाइमज़ोन सेट किया गया हो और utcOffset सेट न हो: किसी खास टाइम ज़ोन में, कैलेंडर दिन का सिविल टाइम.
  • जब timeZone या utcOffset, दोनों में से कोई भी सेट न हो: स्थानीय समय के हिसाब से, कैलेंडर का दिन का सिविल टाइम.

यह तारीख, प्रोलेप्टिक ग्रेगोरियन कैलेंडर के हिसाब से है.

अगर साल, महीना या दिन 0 है, तो DateTime को कोई खास साल, महीना या दिन नहीं माना जाएगा.

इस टाइप का इस्तेमाल, समय दिखाने के लिए भी किया जा सकता है. ऐसा तब होता है, जब तारीख और समय वाले सभी फ़ील्ड सेट हों और time_offset में से दोनों में से कोई भी एक फ़ील्ड सेट हो. इसके बजाय, समय बिताने के लिए 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 से 9,99,99, 999 के बीच होनी चाहिए. यह डिफ़ॉल्ट रूप से 0 पर सेट होती है.

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

string (Duration format)

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

सेकंड में कुल नौ दशमलव अंक, जो 's' पर खत्म होते हैं. उदाहरण: "3.5s".

timeZone

object (TimeZone)

टाइम ज़ोन.

TimeZone

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

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

string

IANA टाइम ज़ोन डेटाबेस का टाइम ज़ोन, जैसे "अमेरिका/New_York".

version

string

ज़रूरी नहीं. IANA टाइम ज़ोन डेटाबेस वर्शन संख्या, जैसे "2019a".