2011-12-16 17 views
8

क्या फ़ंक्शन clock_gettime यूटीसी में या स्थानीय समय क्षेत्र में युग से मापा गया टाइमस्टैम्प लौटाता है?घड़ी_gettime एक यूटीसी समय, या स्थानीय समय क्षेत्र है?

मुझे पता है कि time यूटीसी युग से होना चाहिए, लेकिन मुझे कोई संदर्भ नहीं मिल रहा है कि यह clock_gettime के बारे में भी सच है।

उत्तर

13

विकिपीडिया के शब्दों में, यूनिक्स काल defined रूप

समय 1 जनवरी 1970 (: 00: 00Z आईएसओ 8601 या 1970-01-01T00) पर 00:00:00 यूटीसी है।

इससे यह इस प्रकार है कि "युग" का कोई संदर्भ यूटीसी का तात्पर्य है।

+0

मैं निष्कर्ष से असहमत हूं। पूर्ण समय घटनाओं में कोई समय क्षेत्र नहीं है। –

+1

@ बेसिलस्टारनकेविच: असल में, मुझे नहीं लगता कि हम दोनों के बीच कोई असहमति है। टाइमज़ोन (यूटीसी) केवल तब खेलता है जब हम किसी विशेष स्थान * में स्थानीय दिनांक/समय * के संदर्भ में "पूर्णकालिक घटना" व्यक्त करते हैं। – NPE

6

वास्तव में, सवाल बहुत समझ में नहीं आता है। समय-संबंधित कार्यों के अवलोकन के लिए time(7) देखें।

कोई भी घड़ी डिवाइस अतीत में कुछ मूल घटनाओं से मापा गया समय देता है। यूनिक्स (और पॉज़िक्स) सम्मेलन Epoch (1 9 70 की शुरुआत से, aix's answer बताता है) से मापने के लिए है।

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

यह कह रही है कि दो, ड्यूक्स, 1 + 1, या , या 10b -साथ अर्थ binary- ही संख्या के सभी अभ्यावेदन की तरह एक सा है।

प्रश्न पर वापस, man page of clock_gettime प्रश्न का सटीक उत्तर देता है। यह clk_id पर निर्भर करता है, और CLOCK_REALTIME के लिए, समय यूनिक्स युग के बाद मापा जाता है। अन्य घड़ियों के लिए (उदा। CLOCK_MONOTONIC), प्रयुक्त मूल निर्दिष्ट नहीं है।

(मैं यहां प्रश्नों की संख्या से आश्चर्यचकित हूं, जिसे मैन में देखकर बहुत जल्दी उत्तर दिया जा सकता है। मुझे इस सवाल से पूछने के लिए अधिक समय लेने वाले लोगों के तर्क को समझ में नहीं आता है कि man clock_gettime अपने लिनक्स बॉक्स पर मैन पेजों में टाइप करके समायोजित करें)।

समय क्षेत्र की धारणा struct tm के लिए ही प्रासंगिक रूप से localtime & gmtime (और संबंधित) कार्यों लौट आए है। एक समय (उदा। कुछ time_t) एपोक से मापा गया (time(2), gettimeofday, clock_gettime के परिणाम CLOCK_REALTIME के साथ) कोई समय क्षेत्र नहीं है।

यूनिक्स काल जनवरी 01 है, 1970 00:00 यूटीसी ((time_t)0 की परिभाषा के द्वारा), मेरे समय क्षेत्र (एमईटी = पेरिस/फ्रांस) में एक ही युग गुरु जनवरी है 1 01:00:00 MET 1970

+2

मेरा भ्रम मैन पेज को पढ़ने से बिल्कुल आता है। यह केवल 'एपोक' कहता है और कोई परिभाषा नहीं देता है, जबकि समय स्पष्ट रूप से युग को यूटीसी आधारित के रूप में दिखाता है। और मेरे प्रश्न के दोनों हिस्सों में मैं इंगित करता हूं कि मैं कुछ समय से _from_ को माप रहा हूं, इसलिए मुझे नहीं पता कि प्रश्न कैसे समझ में नहीं आता है। –

+0

क्षमा करें, युग यूटीसी आधारित नहीं है। किसी भी अन्य सटीक समय के रूप में। आप यह नहीं कह सकते कि नए साल में 9/11/2001 की घटनाएं यूटीसी में होती हैं, वे बस कुछ सटीक समय पर हुईं (जिसका यूटीसी में प्रतिनिधित्व फ्रेंच क्रांतिकारी कैलेंडर का उपयोग करके इसके प्रतिनिधित्व के समान नहीं है)। मैं जोर देता हूं: एक दिए गए समय कार्यक्रम में कोई समय क्षेत्र नहीं है! आप क्या कह सकते हैं कि यूटीसी में प्रतिनिधित्व किया गया युग 1 9 70, 01 जनवरी 0:00 है। फ्रांसीसी क्रांतिकारी कैलेंडर का उपयोग करना वही युग 11 निवोस एक 178 है (और मैं भूल गया कि उस समय पेरिस में उस समय की गणना कैसे करें)। लेकिन यह वही युग समय घटना है! –

+0

क्षमा करें, मेरा मतलब न्यूयॉर्क में था (नया साल नहीं!) –

0

यह निर्भर करता है ..

यदि आप clock_gettime(1) पर कॉल करते हैं, तो संभवतः, युग वह समय है जब आपका लिनक्स शुरू हो गया है।

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