2012-01-19 9 views
6

यह मुझे हर जगह की तरह लगता है मैंने प्रोग्रामिंग में समय से संबंधित एल्गोरिदम देखा है, जीएमटी आधार समय था। उदाहरण के लिए, मुझे जीएमटी +00 में हमेशा डीबी में समय स्टोर करने के लिए कहा गया था ताकि समय क्षेत्र में परिवर्तन कुछ भी बाधित न हो।जीएमटी यूटीसी के बजाए कंप्यूटर समय के लिए मानक क्यों है?

  1. क्या मैं सही हूं कि जीएमटी सॉफ्टवेयर विकास में आधार समय क्षेत्र प्रतीत होता है?

  2. यदि हां, तो यूटीसी क्यों नहीं? क्यों यह कहना "UTC + 01" आम नहीं है के बजाय "GMT + 01" यह देखते हुए कि यहां तक ​​कि यूनिक्स टाइमस्टैम्प यूटीसी से परिभाषित कर रहे हैं (http://en.wikipedia.org/wiki/Unix_time)

+1

मेरा मानना ​​है कि जीएमटी और यूटीसी समान हैं। अंतर उन्हें परिभाषित संगठन का नाम है। ब्रिटिश एक (जीएमटी = ग्रीनविच मेरिडियन टाइम) ने अंतरराष्ट्रीय एक (यूटीसी) की भविष्यवाणी की। Http://en.wikipedia.org/wiki/UTC –

+0

देखें क्योंकि यूटीसी फ्रेंच है और जीएमटी अंग्रेजी है? – arx

+0

'यूटीसी +01' का उपयोग करना आम है: [समय क्षेत्र संक्षेपों की सूची] (http://en.wikipedia.org/wiki/List_of_time_zone_abbreviations), [यूटीसी ऑफसेट द्वारा समय क्षेत्र की सूची] (http: // en .wikipedia.org/विकी/List_of_time_zones_by_UTC_offset # toc) –

उत्तर

7

जीएमटी और यूटीसी एक ही समय में हैं। यूनिक्स समय यूटीसी से बाहर है, इसलिए आप यूनिक्स और * निक्स सिस्टम पर अधिक पाएंगे।

यूटीसी को आधिकारिक समय के रूप में भी अधिक बारीकी से ट्रैक किया जाता है (यानी पृथ्वी के घूर्णन के आधार पर "सत्य" समय के साथ अधिक बारीकी से है)। लेकिन जब तक आपके सॉफ़्टवेयर को दूसरी गणना की आवश्यकता नहीं होती है, तब तक यह कोई फर्क नहीं पड़ता कि आप जीएमटी या यूटीसी का उपयोग करते हैं या नहीं।

हालांकि, आप विचार कर सकते हैं कि उपयोगकर्ताओं को कौन सा प्रदर्शित करना है। एक प्रारूप दूसरे से अधिक परिचित हो सकता है। मैं आम तौर पर वैश्विक अनुप्रयोगों के लिए यूटीसी के साथ जाऊंगा, और यूरोपीय या ब्रिटेन स्थित अनुप्रयोगों के लिए जीएमटी।

+3

मामूली सुधार: http://en.wikipedia.org/wiki/Coordinated_Universal_Time के मुताबिक, यूटीसी परमाणु घड़ी से दूर है और तकनीकी रूप से यूटी 1 और जीएमटी के रूप में पृथ्वी के घूर्णन से दूर नहीं है। लेकिन शोध के बाद अब मैं देखता हूं कि जीएमटी यूटीसी के समान है यदि आप उप-दूसरी सटीकता के बारे में चिंतित नहीं हैं। –

+0

@ Thr4wn यूटीसी और टीएआई समन्वयित हैं, लेकिन वे 30 सेकंड से अधिक अलग हैं। ऐसा इसलिए है क्योंकि यूटीसी कभी-कभी यूटी 1 के एक सेकंड के भीतर रहने के लिए लीप सेकंड जोड़ता है। मुझे लगता है कि यह सटीकता बनाम सटीकता का मामला है। यूटीसी और टीएआई * ठीक * 34 सेकंड अलग हैं, लेकिन यूटीसी और यूटी 1 अधिक * सटीक * संबंधित हैं (1 सेकंड के भीतर)। –

+0

आह, अच्छा बिंदु। मैने इसके बारे में कभी नहीं सोचा था। –

1

मैं कहूंगा कि ऐसा इसलिए है क्योंकि ज्यादातर लोग जीएमटी के लिए उपयोग किए जाते हैं। यदि आप किसी व्यक्ति को विशेष रूप से समय पर जानकारी प्रदर्शित करने जा रहे हैं, तो आप एक प्रारूप चाहते हैं जिसे वे आसानी से समझ सकें। जीएमटी का उपयोग करके आप यूटीसी और वापस परिवर्तित करने के अतिरिक्त कदम बचाते हैं।

+0

जीएमटी और यूटीसी एक ही चीज़ के लिए अलग-अलग नाम हैं। बदलने के लिए कुछ भी नहीं है। – arx

+0

@arx, यह एक ही समय है, लेकिन एक ही चीज नहीं! –

+0

तो, यदि कोई अंतर है, तो कुछ प्रकार के रूपांतरण होना चाहिए जो दोनों के बीच किया जाना चाहिए, है ना? – CSturgess

2

यह स्वीकृत प्रतिक्रिया वास्तव में गलत है। सबसे पहले वे किसी भी माध्यम से समान नहीं हैं। दूसरी यूटीसी पृथ्वी के घूर्णन के आधार पर "सत्य" समय के साथ अधिक निकटता से नहीं है, बिल्कुल विपरीत है। 'समय' माप के मामले में यूटीसी अधिक सटीक है। प्रत्येक दूसरा आखिरी आखिरी बार परमाणु समय पर आधारित होता है और परिशुद्धता बढ़ती हाइट होती है (इसमें एक सेकंड ऑफसेट करने में 30 हजार साल लगेंगे)।

जीएमटी इसके बजाय पृथ्वी रोटेशन को ट्रैक करता है, क्योंकि यह हमेशा एक जैसा नहीं होता है (पृथ्वी घूर्णन धीमा हो रहा है) प्रत्येक दूसरे अलग होता है। बेशक, समय की वास्तव में एक छोटी राशि में अलग है। लेकिन महत्वपूर्ण उद्देश्यों के लिए, जीएमटी की तुलना में बहुत अधिक सटीक यूटीसी है।

यही कारण है कि यूटीसी हर 4/5 सालों में +2 सेकेंड बदलता है (चूंकि पृथ्वी घूर्णन धीमा हो जाता है, यह प्रत्येक दूसरे को यूटीसी से बड़ा होना चाहिए), इसलिए यह जीएमटी पृथ्वी रोटेशन समय से कम है अंतर का दूसरा।

+0

एफवाईआई - आपने यूटी 1 का वर्णन किया है, जीएमटी नहीं। [विकिपीडिया यह बहुत अच्छी तरह से कहता है] (https://en.wikipedia.org/wiki/Greenwich_Mean_Time): "... आज जीएमटी यूके नागरिक उद्देश्यों के लिए यूटीसी के बराबर माना जाता है ... और नेविगेशन के लिए यूटी 1 के बराबर माना जाता है। .. " –

1

जीएमटी और यूटीसी एक ही बात नहीं हैं। https://en.wikipedia.org/wiki/Greenwich_Mean_Time और भेद के लिए यूटीसी में लिंक पढ़ें।

कुछ कंप्यूटर उपयोगकर्ता इस तथ्य से भ्रमित हैं कि विंडोज 7 तक, कोई भी माइक्रोसॉफ्ट ऑपरेटिंग सिस्टम पूरी तरह से यूटीसी का समर्थन नहीं करता है, और इस प्रकार जीएमटी के रूप में अंतर्राष्ट्रीय समय संदर्भ लेबलिंग रखता है।

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

विंडोज 7 के रूप में, विंडोज यूटीसी को BIOS घड़ी को सेट करने में सक्षम हो सकता है और यूटीसी के साथ सभी गणना (ज्यादातर?) संगत करता है, इसलिए माइक्रोसॉफ्ट ने जीएमटी से यूटीसी में लेबल स्विच करने का फैसला किया।

देखें:

https://superuser.com/questions/185773/does-windows-7-support-utc-as-bios-time

+0

विंडोज के बारे में थोड़ा गलत है। लेबल जीएमटी से यूटीसी में बदल गया क्योंकि माइक्रोसॉफ्ट ने मान्यता दी कि यूटीसी अधिक सटीक शब्दावली है। इसका समर्थन करने के लिए कुछ भी नहीं है जो समर्थित हो सकता है या नहीं। विंडोज 7 में समय प्रबंधन के लिए कोई कार्यात्मक परिवर्तन नहीं किया गया था।कुछ विवरण [इस आलेख में] (http://www.cl.cam.ac.uk/~mgk25/mswish/ut-rtc.html) इंगित करता है कि 'रीयलटाइमइन्स यूनिवर्सल' कम से कम विंडोज 2000 के बाद से था और शायद इससे पहले विंडोज एनटी पर वापस)। –

3

मैंने सोचा कि यह क्या IANA timezones वर्तमान में अब से संक्षिप्त नाम "GMT" का उपयोग कर रहे हैं, दोनों अब और 6 महीने की खोज के लिए मजेदार होगा (डेलाइट बचत समय पर वर्तमान में उन को पकड़ने के लिए)।

इस free, open source C++11/14 library का उपयोग करना, मैं इस कार्यक्रम ने लिखा है:

#include "tz.h" 
#include <string> 
#include <iostream> 
#include <vector> 

template <class Duration> 
std::vector<date::zoned_time<std::common_type_t<Duration, std::chrono::seconds>>> 
find_by_abbrev(date::sys_time<Duration> tp, const std::string& abbrev) 
{ 
    using namespace std::chrono; 
    using namespace date; 
    std::vector<zoned_time<std::common_type_t<Duration, seconds>>> results; 
    auto& db = get_tzdb(); 
    for (auto& z : db.zones) 
    { 
     if (z.get_info(tp).abbrev == abbrev) 
      results.push_back(make_zoned(&z, tp)); 
    } 
    return results; 
} 

int 
main() 
{ 
    using namespace std::chrono; 
    using namespace date; 
    auto now = system_clock::now(); 
    auto v = find_by_abbrev(now, "GMT"); 
    for (auto const& x : v) 
     std::cout << format("%F %H:%M:%S %Z %z", x) << " " 
        << x.get_time_zone()->name() << '\n'; 
    std::cout << '\n'; 
    v = find_by_abbrev(now + months{6}, "GMT"); 
    for (auto const& x : v) 
     std::cout << format("%F %H:%M:%S %Z %z", x) << " " 
        << x.get_time_zone()->name() << '\n'; 
} 

यह सभी समय क्षेत्र है कि वर्तमान में उपयोग कर रहे हैं "GMT" के लिए ग्रह की खोज करता है, दोनों अब, और अब से 6 महीने, और उन्हें बाहर प्रिंट:

2016-06-18 01:00:25.632773 GMT +0000 Africa/Abidjan 
2016-06-18 01:00:25.632773 GMT +0000 Africa/Accra 
2016-06-18 01:00:25.632773 GMT +0000 Africa/Bissau 
2016-06-18 01:00:25.632773 GMT +0000 Africa/Monrovia 
2016-06-18 01:00:25.632773 GMT +0000 America/Danmarkshavn 
2016-06-18 01:00:25.632773 GMT +0000 Atlantic/Reykjavik 
2016-06-18 01:00:25.632773 GMT +0000 Etc/GMT 

2016-12-17 15:55:01.632773 GMT +0000 Africa/Abidjan 
2016-12-17 15:55:01.632773 GMT +0000 Africa/Accra 
2016-12-17 15:55:01.632773 GMT +0000 Africa/Bissau 
2016-12-17 15:55:01.632773 GMT +0000 Africa/Monrovia 
2016-12-17 15:55:01.632773 GMT +0000 America/Danmarkshavn 
2016-12-17 15:55:01.632773 GMT +0000 Atlantic/Reykjavik 
2016-12-17 15:55:01.632773 GMT +0000 Etc/GMT 
2016-12-17 15:55:01.632773 GMT +0000 Europe/Dublin 
2016-12-17 15:55:01.632773 GMT +0000 Europe/London 

मुझे यह देखने के लिए प्रसन्नता हुई कि सभी मामलों में यूटीसी ऑफसेट +0000 था। आप राजनेताओं और समय क्षेत्र के साथ कभी नहीं जानते। कुछ विधायी निकाय आसानी से "ग्रीन माउंटेन टाइम" (और कल कल हो सकता है) घोषित कर सकते हैं।

संबंधित मुद्दे