मैंने हाल ही में how to change the timezone returned by localtime
in Perl सीखा।'लोकलटाइम' कॉल करने से पहले पर्ल स्क्रिप्ट को 'tzset` को कॉल करने की आवश्यकता कब होती है?
use POSIX qw(tzset);
print localtime . "\n";
$ENV{TZ} = 'America/Los_Angeles';
print localtime . "\n";
tzset;
print localtime . "\n";
आउटपुट
Wed Apr 15 15:58:10 2009
Wed Apr 15 15:58:10 2009
Wed Apr 15 12:58:10 2009
सूचना कैसे घंटे केवल tzset
बुला के बाद बदल जाता है।
This is perl, v5.8.8 built for x86_64-linux-thread-multi
लेकिन, मेरा सिस्टम पर मैं हो रही है,
Fri Jul 8 19:00:51 2016
Fri Jul 8 16:00:51 2016
Fri Jul 8 16:00:51 2016
सूचना कैसे अपने सिस्टम पर, घंटे बुला tzset
बिना बदल जाता । यह सोलारिस 10
तो पर Ubuntu और Illumos, साथ ही पर्ल v5.8.8
में पर्ल के हाल के संस्करणों पर सच है मेरे सारे परीक्षण इशारा करता है, तो tzset
कोई प्रभाव नहीं है, क्यों/अन्य क्या सिस्टम की आवश्यकता होती है tzset
स्पष्ट रूप से कहा जा है कि? क्या मुझे अभी भी कुछ वातावरण के साथ संगत रहने के लिए tzset
पर कॉल करने की आवश्यकता है, या अब यह अतीत की बात है?
http://perldoc.perl.org/perlport.html#Time-and-Date tl; dr - प्रणाली और दिन की तारीख के सिस्टम की धारणा व्यापक रूप से अलग-अलग तरीकों से नियंत्रित होती है। मान लें कि टाइमज़ोन $ ENV {TZ} में संग्रहीत है, और यहां तक कि यदि यह भी है, तो यह न मानें कि आप उस चर के माध्यम से टाइमज़ोन को नियंत्रित कर सकते हैं। – xxfelixxx
मुझे कुछ विशिष्ट चाहिए। मेरा परीक्षण इंगित करता है कि 'tzset' को कॉल न करना सुरक्षित है। चूंकि यहां सॉफ्टवेयर केवल विशिष्ट प्लेटफार्मों के लिए है, इसलिए मैं अपनी टीम को अतिरिक्त काम करने के लिए नहीं बताना चाहता हूं जिसकी आवश्यकता नहीं है। तो, हमें किस स्थिति में 'tzset' की आवश्यकता है? –
एक उत्तर पोस्ट और हटा दिया गया था, लेकिन http://pubs.opengroup.org/onlinepubs/9699919799/functions/localtime.html से लिंक, जो कहता है * "स्थानीय टाइमज़ोन जानकारी का उपयोग स्थानीय समय() को tzset() कहते हैं। "*, तो ऐसा लगता है कि सिस्टम 'लोकलटाइम' को स्वचालित रूप से 'tzset'' कॉल करना चाहिए यदि सिस्टम POSIX-compliant है ??? क्या यह परिभाषित कारक है - क्या ओएस पॉज़िक्स-अनुरूप है? –