दिनांक और समय से संबंधित किसी भी एप्लिकेशन के लिए समय क्षेत्र महत्वपूर्ण होते हैं। बेशक, यह उन ऐप्स के लिए विशेष रूप से सच है जो महाद्वीपों और स्थानों के उपयोगकर्ताओं को सेवा प्रदान करते हैं। समय क्षेत्र दुनिया भर के विशिष्ट स्थानों के लिए समन्वित यूनिवर्सल टाइम (UTC) से ऑफ़सेट निर्धारित करते हैं। वे सटीक और विश्वसनीय समय प्रबंधन सुनिश्चित करने में महत्वपूर्ण भूमिका निभाते हैं।
समय और समय क्षेत्र के साथ काम करने के लिए गो अपने मानक पुस्तकालय में समय पैकेज प्रदान करता है। आप समय पैकेज का उपयोग करके विभिन्न स्थानों पर समय क्षेत्रों को प्राप्त और परिवर्तित कर सकते हैं।
समय पैकेज
समय पैकेज के लिए कार्यक्षमता प्रदान करता है समय और तिथियों के साथ काम करनालीप सेकंड के बिना ग्रेगोरियन कैलेंडर का उपयोग करके समय को मापना और प्रदर्शित करना और तारीखों में हेरफेर करना।
समय पैकेज एक प्रदान करता है समयसंरचना प्रकार स्थान फ़ील्ड शामिल है जिसका उपयोग आप समय क्षेत्र सेट करने के लिए कर सकते हैं।
आप इम्पोर्ट स्टेटमेंट के साथ टाइम पैकेज इम्पोर्ट कर सकते हैं।
आयात"समय"
यहाँ समय संरचना प्रकार और उसके क्षेत्र हैं। फ़ील्ड अनिर्यात हैं, इसलिए वे आधिकारिक दस्तावेज़ीकरण से अनुपस्थित हैं।
पैकेट मुख्य
प्रकार समय struct {
// दीवार रनटाइम द्वारा लौटाए गए प्रारूप में दीवार का समय है। नैनोटाइम ()
// समारोह।
दीवार uint64// ext द्वारा लौटाए गए प्रारूप में मोनोटोनिक क्लॉक रीडिंग है
// रनटाइम.नैनोटाइम ()।
विस्तार int64// loc इस समय से जुड़े स्थान संरचना का सूचक है।
लोक * स्थान
}प्रकार जगह struct {
// नाम समय क्षेत्र का नाम है, जैसे "यूटीसी" या "पीएसटी"।
नाम डोरी// ज़ोन में समय क्षेत्र संक्षिप्त नाम, ऑफ़सेट, के बारे में जानकारी होती है
// और स्थान में एक ही समय क्षेत्र के लिए नियम।
क्षेत्र [] अंचल// tx में समय क्षेत्र संक्षिप्त नाम या के बारे में जानकारी होती है
// किसी स्थान के लिए ऑफसेट परिवर्तन।
टीएक्स [] ज़ोनट्रांस// विस्तार में पैरेंट टाइम ज़ोन का नाम होता है यदि यह स्थान
// दूसरे से फैलता है।
बढ़ाना डोरी// cacheStart और cacheEnd यूनिक्स टाइमस्टैम्प हैं जो सीमा को परिभाषित करते हैं
// जिसके लिए कैशज़ोन फ़ील्ड मान्य है।
cacheStart int64
cacheEnd int64
// cacheZone उस ज़ोन की ओर इशारा करता है जो वर्तमान में समय के लिए मान्य है
// श्रेणी cacheStart और cacheEnd द्वारा परिभाषित की गई है।
कैशज़ोन * ज़ोन
}
कई तरीके समय और का उपयोग करते हैं जगह structs, समय क्षेत्र विधियों सहित।
लोड हो रहा है समय क्षेत्र जानकारी
समय क्षेत्र के साथ काम करते समय समय क्षेत्र जानकारी लोड करना बुनियादी कार्यों में से एक है। लोड स्थान विधि समय क्षेत्र की जानकारी लोड करने के लिए कार्यक्षमता प्रदान करती है IANA समय क्षेत्र डेटाबेस. लोड स्थान विधि समय क्षेत्र का नाम लेती है और स्थान की जानकारी और हैंडलिंग के लिए एक त्रुटि लौटाती है। समय क्षेत्र की जानकारी लोड करने के बाद, यह एक बनाता है समय समय क्षेत्र से संबद्ध संरचना उदाहरण।
आयात (
"एफएमटी"
"समय"
)समारोहमुख्य() {
// अमेरिका/न्यू_यॉर्क के लिए समय क्षेत्र स्थान लोड करें
एलओसी, गलती: = समय। लोड स्थान ("अमेरिका/न्यू_यॉर्क")अगर गलती! = शून्य {
fmt. प्रिंटलन("स्थान लोड करने में त्रुटि:", गलती)
वापस करना
}
// किसी स्थान पर वर्तमान समय प्राप्त करें
अभी := समय। अब ()। इन (स्थानीय)
fmt. प्रिंटलन("न्यूयॉर्क में वर्तमान समय:", अब)
}
में की विधि अब समारोह एक स्थान लेता है और वहां समय प्रिंट करता है:
इसके अतिरिक्त, आप का उपयोग कर सकते हैं फिक्स्ड जोन किसी स्थान में वर्तमान समय को लोड करने की विधि यदि आप स्थान स्ट्रिंग और UTC से समय क्षेत्र की ऑफ़सेट जानते हैं। सबसे पहले, आपको वर्तमान समय को UTC में लोड करना होगा, और फिर आप इसे लोड करने के लिए FixedZone पद्धति का उपयोग करेंगे स्थान को समय की विधि में पास करने से पहले स्ट्रिंग और ऑफ़सेट के आधार पर स्थान उदाहरण।
आयात (
"एफएमटी"
"समय"
)समारोहमुख्य() {
// यूटीसी में वर्तमान समय प्राप्त करें
अभी := समय। अब ()। यूटीसी ()// लागोस के लिए समय क्षेत्र निर्धारित करें
लागोस := अभी। समय के भीतर। फिक्स्ड जोन("वाट", 3600))
// दोनों स्थानों में वर्तमान समय प्रिंट करें
fmt. प्रिंटलन("लागोस में वर्तमान समय:", लागोस)
}
मुख्य फ़ंक्शन वर्तमान समय को लागोस में कंसोल पर प्रिंट करता है।
समय क्षेत्र अवधि मापना
समय पैकेज प्रदान करता है क्षेत्र ए से जुड़े समय क्षेत्र के संक्षिप्त नाम और ऑफसेट को पुनः प्राप्त करने की विधि समय। समय कीमत। ज़ोन विधि समय क्षेत्र के संक्षिप्त नाम का प्रतिनिधित्व करने वाली स्ट्रिंग लौटाती है (उदाहरण के लिए "अमेरिका/न्यू_यॉर्क" के लिए "ईएसटी") और यूटीसी के पूर्व में सेकंड की संख्या का प्रतिनिधित्व करने वाला एक पूर्णांक।
आयात (
"एफएमटी"
"समय"
)समारोहमुख्य() {
// अमेरिका/न्यू_यॉर्क के लिए समय क्षेत्र स्थान लोड करें
एलओसी, गलती: = समय। लोड स्थान ("अमेरिका/न्यू_यॉर्क")अगर गलती! = शून्य {
fmt. प्रिंटलन("स्थान लोड करने में त्रुटि:", गलती)
वापस करना
}// यूटीसी और निर्दिष्ट स्थान में वर्तमान समय प्राप्त करें
टी 1: = समय। अब()
t2 := t1.In (लोक)// प्रत्येक समय क्षेत्र के लिए सेकंड में ऑफ़सेट प्राप्त करें
// समय क्षेत्र के लिए
_, ऑफ़सेट1 := t1.Zone()
_, ऑफ़सेट2 := t2.Zone()// समय क्षेत्र बदलाव की अवधि की गणना करें
// UTC और अमेरिका/New_York के बीच
अवधि := ऑफसेट2 - ऑफसेट1
fmt. प्रिंटफ("समय क्षेत्र बदलाव की अवधि" +
"यूटीसी और न्यूयॉर्क के बीच है: %d सेकंड", अवधि)
}
मुख्य कार्य में, ज़ोन विधि दो समय क्षेत्रों (time. समय मान)। टी 1 चर यूटीसी में वर्तमान समय है, और टी 2 चर "अमेरिका/न्यू_यॉर्क" समय क्षेत्र में वर्तमान समय है।
समारोह प्रिंट करता है अवधि चर (समय क्षेत्रों के बीच ऑफसेट में अंतर) सेकंड में समय क्षेत्र बदलाव का प्रतिनिधित्व करता है।
समय क्षेत्रों के बीच समय का मूल्यांकन
यदि आप समय क्षेत्रों के बीच की अवधि जानते हैं तो आप समय क्षेत्रों के बीच समय का मूल्यांकन कर सकते हैं। आप उपयोग कर सकते हैं जोड़ना अपने समय की विधि में विधि। समय क्षेत्र में समय में अवधि जोड़ने के लिए समय संरचना उदाहरण।
आयात (
"लकड़ी का लट्ठा"
"समय"// समय पैकेज आयात करें
)समारोहमूल्यांकन समय(टी समय। समय, अवधि समय। अवधि)समय.समय {
// अफ्रीका/लागोस के लिए स्थान लोड करें
स्थान, त्रुटि: = समय। लोड स्थान ("अफ्रीका/लागोस")
अगर गलती! = शून्य {
लकड़ी का लट्ठा। प्रिंटलन("स्थान लोड करने में त्रुटि हुई")
}
वापस करना टी। (स्थान) में। जोड़ें (अवधि)
}
मूल्यांकन समय समारोह एक समय में लेता है। समय उदाहरण और प्रकार की अवधि समय। अवधि, समय क्षेत्र में समय लौटा रहा है। यह "अफ्रीका/लागोस" में वर्तमान समय को लोड करता है और समय के लिए एक अवधि जोड़ता है।
समय पैकेज के साथ समय और दिनांक में हेरफेर करें
समय पैकेज समय और दिनांक दोनों के साथ काम करने के लिए बहुत बहुमुखी है। समय पैकेज समय को यूनिक्स समय में परिवर्तित करने के लिए यूनिक्स (), गोरआउट्स को रोकने के लिए स्लीप () और स्ट्रिंग के लिए समय मानों को स्वरूपित करने के लिए प्रारूप () जैसे कार्य प्रदान करता है।