यह एक महत्वपूर्ण और आश्चर्यजनक रूप से कठिन मुद्दा है। सच्चाई यह है कि लगातार समय के लिए पूरी तरह से संतोषजनक मानक नहीं है। उदाहरण के लिए, SQL मानक और ISO प्रारूप (ISO 8601) स्पष्ट रूप से पर्याप्त नहीं हैं।
वैचारिक दृष्टिकोण से, आमतौर पर दो प्रकार के टाइम-डेट डेटा के साथ सौदा होता है, और उन्हें भेद करने के लिए सुविधाजनक है (उपरोक्त मानक नहीं): " भौतिक समय " और " नागरिक समय " "।
एक "भौतिक" समय की निरंतरता सार्वभौमिक सार्वभौमिक समय में एक बिंदु है जो भौतिकी से संबंधित है (निश्चित रूप से सापेक्षता की अनदेखी)। इस अवधारणा को यूटीसी में पर्याप्त रूप से कोडित-किया जा सकता है, उदाहरण के लिए (यदि आप लीप सेकंड को अनदेखा कर सकते हैं)।
एक "सिविल" समय एक डेटाइम विनिर्देश है जो नागरिक मानदंडों का पालन करता है: समय का एक बिंदु पूरी तरह से डेटाइम फ़ील्ड (वाई, एम, डी, एच, एम, एस, एफएस) प्लस एक टीबी (टाइमज़ोन विनिर्देश) के एक सेट द्वारा निर्दिष्ट किया गया है (वास्तव में एक "कैलेंडर" भी है, लेकिन हम ग्रेगोरियन कैलेंडर की चर्चा को प्रतिबंधित करते हैं)। एक समयक्षेत्र और एक कैलेंडर संयुक्त रूप से (सिद्धांत रूप में) एक प्रतिनिधित्व से दूसरे में मैप करने की अनुमति देता है। लेकिन नागरिक और भौतिक समय के सिद्धांत मौलिक रूप से विभिन्न प्रकार के परिमाण हैं, और उन्हें वैचारिक रूप से अलग और अलग तरीके से व्यवहार किया जाना चाहिए (एक सादृश्य: बाइट्स और चरित्र के तार)।
समस्या भ्रामक है क्योंकि हम इन प्रकार की घटनाओं के बीच में अंतरंग रूप से बात करते हैं, और क्योंकि नागरिक समय राजनीतिक परिवर्तनों के अधीन है। समस्या (और इन अवधारणाओं को अलग करने की आवश्यकता) भविष्य में होने वाली घटनाओं के लिए अधिक स्पष्ट हो जाती है। उदाहरण (मेरी चर्चा से लिया गया यहां ।
जॉन अपने कैलेंडर में डेटाटाइम 2019-Jul-27, 10:30:00
, TZ = Chile/Santiago
(जिसमें ऑफसेट GMT-4 है, इसलिए यह UTC से मेल खाता है 2019-Jul-27 14:30:00
) में कुछ ईवेंट के लिए एक अनुस्मारक रिकॉर्ड करता है
। लेकिन भविष्य में किसी दिन, देश टीटी ऑफसेट को जीएमटी -5 में बदलने का फैसला करता है।
अब, जब दिन आता है ... उस अनुस्मारक को ट्रिगर करना चाहिए
क) 2019-Jul-27 10:30:00 Chile/Santiago
= UTC time 2019-Jul-27 15:30:00
?
या
ब) 2019-Jul-27 9:30:00 Chile/Santiago
= UTC time 2019-Jul-27 14:30:00
?
कोई भी सही उत्तर नहीं है, जब तक कोई यह नहीं जानता कि जॉन को वैचारिक रूप से क्या मतलब है जब उसने कैलेंडर को बताया "कृपया मुझे अंगूठी दें।" 2019-Jul-27, 10:30:00
TZ=Chile/Santiago
" कहा था।
क्या उनका मतलब "सिविल डेट-टाइम" था ("जब मेरे शहर की घड़ियां 10:30 बताती हैं")? उस मामले में, ए) सही उत्तर है।
या क्या उनका मतलब "भौतिक समय का तात्पर्य" था, जो हमारे ब्रह्मांड के समय की निरंतरता रेखा का एक बिंदु था, कहते हैं, "जब अगला सूर्य ग्रहण होता है"। उस मामले में, उत्तर बी) सही है।
कुछ दिनांक / समय एपीआई को यह अंतर प्राप्त होता है: उनमें से, जोड़ीटाइम , जो अगले (तीसरे!) जावा डेटटाइम एपीआई (जेएसआर 310) की नींव है।
GETDATE()
एसक्यूएल पर यह रास्ता यूटीसी (जैसा होगाDateTime.Now
) होगा । और सर्वर किसी भी प्रकार के स्वचालित डीएसटी परिवर्तनों से प्रभावित नहीं होगा।