गाइड

किसी भी अक्षांश और देशांतर का समय क्षेत्र पता करें

सिर्फ़ निर्देशांक से यह पता नहीं चलता कि मैप पर किसी बिंदु पर कितना समय हुआ है। समय क्षेत्र एंडपॉइंट अक्षांश और देशांतर लेता है और समय क्षेत्र का नाम, उसका मौजूदा UTC ऑफ़सेट और उसका संक्षिप्त नाम लौटाता है।

अनुरोध भेजना

GET /v1/timezone?lat=52.3676&lon=4.9041
{
  "status": "ok",
  "timezone": "Europe/Amsterdam",
  "utc_offset": "+02:00",
  "abbreviation": "CEST"
}

timezone फ़ील्ड एक मानक पहचानकर्ता है जिसे आप ज़्यादातर डेट और टाइम लाइब्रेरी में सीधे पास कर सकते हैं। utc_offset और abbreviation फ़ील्ड डिस्प्ले के लिए उपयोगी हैं, जब आप पाठक को पहचानकर्ता स्ट्रिंग से ज़्यादा परिचित कुछ दिखाना चाहते हैं।

दूसरा उदाहरण, डेट लाइन के दूसरी ओर

ऑफ़सेट हमेशा छोटी, पूर्ण संख्याएँ नहीं होते, और कुछ जगहें दुनिया की ज़्यादातर आबादी की तुलना में डेट लाइन के दूसरी ओर स्थित हैं।

GET /v1/timezone?lat=-17.7333&lon=168.3273
{
  "status": "ok",
  "timezone": "Pacific/Efate",
  "utc_offset": "+11:00",
  "abbreviation": "VUT"
}

लौटाए गए पहचानकर्ता को एक ही तरह से संभालें, चाहे वह आपके अपने सर्वर की घड़ी से कितना भी दूर हो। आपकी डेट लाइब्रेरी पहले से जानती है कि ग्यारह घंटे के ऑफ़सेट को सही तरीके से कैसे संभालना है, इसलिए आपके अपने समय क्षेत्र से दूर की लोकेशन के लिए कोई खास केस लिखने की ज़रूरत नहीं है।

इसे जियोकोडिंग के साथ जोड़ना

इस एंडपॉइंट को सिर्फ़ निर्देशांक चाहिए, इसलिए यह फ़ॉरवर्ड या रिवर्स जियोकोडिंग के साथ स्वाभाविक रूप से जुड़ता है। पहले किसी पते को जियोकोड करके उसका अक्षांश और देशांतर पाएँ, फिर उन्हें सीधे /v1/timezone में पास करें ताकि पता चल सके कि वह लोकेशन किस समय क्षेत्र में है, उपयोगकर्ता से समय क्षेत्र के बारे में सीधे कुछ भी पूछे बिना।

अगर आपके पास जियोकोड किए गए पते के बजाय पहले से किसी विज़िटर का IP पता है, तो /v1/ip एंडपॉइंट अपने ही रिस्पॉन्स में सीधे timezone फ़ील्ड लौटाता है, इस एंडपॉइंट पर अलग कॉल की बिल्कुल ज़रूरत नहीं होती। /v1/timezone का सीधे इस्तेमाल तब करें जब आपके पास किसी संबंधित IP लुकअप के बिना पहले से निर्देशांक हों, जैसे किसी ग्राहक की शिपिंग प्रोफ़ाइल का पता।

डेलाइट सेविंग का ध्यान रखना

utc_offset और abbreviation उस समय पर लागू ऑफ़सेट दिखाते हैं जिसके बारे में आपने पूछा था। अगर आपको अभी के बजाय किसी खास तारीख से मतलब है, तो time पैरामीटर के साथ unix टाइमस्टैम्प पास करें ताकि रिस्पॉन्स में आज का नहीं, बल्कि उस तारीख पर लागू ऑफ़सेट दिखे।

GET /v1/timezone?lat=52.3676&lon=4.9041&time=1731000000

एक गलती जिससे बचना चाहिए

इस एंडपॉइंट को एक बार कॉल करके utc_offset की वैल्यू को लंबे समय तक कैश करना एक आम शॉर्टकट है, जो डेलाइट सेविंग मानने वाली जगहों पर साल में दो बार टूट जाता है। timezone पहचानकर्ता खुद स्थिर है और उसे कैश करना सुरक्षित है। ऑफ़सेट और संक्षिप्त नाम स्थिर नहीं हैं, क्योंकि वे कैलेंडर के साथ बदलते हैं, इसलिए उन्हें पहचानकर्ता के साथ सहेजने के बजाय डिस्प्ले के समय दोबारा गणना करें।

इसकी लागत क्या है

हर समय क्षेत्र लुकअप एक अनुरोध है। अगर आप साइन अप या चेकआउट फ़्लो के हिस्से के रूप में पहले से किसी पते को जियोकोड कर रहे हैं, तो उसी लोकेशन के लिए समय क्षेत्र लुकअप जोड़ने से उस फ़्लो के लिए आपके अनुरोधों की संख्या दोगुनी हो जाती है, एक अनुरोध से दो, जो हर कुंजी के साथ शामिल 2,500 प्रतिदिन मुफ़्त अनुरोधों की तुलना में अब भी बहुत मामूली है।

समय क्षेत्र डेटा को हाथ से संभालने में गलती होना आसान है, खासकर डेलाइट सेविंग की सीमाओं के आसपास, इसलिए अपनी खुद की ऑफ़सेट टेबल बनाए रखने के बजाय इसे एक ही स्रोत से लेना बेहतर है। समय क्षेत्र लुकअप दस्तावेज़ में पैरामीटर की पूरी सूची है।