सवाल लिनक्स में कौन सा टाइमज़ोन जांचें?


क्या वर्तमान में लिनक्स पर कौन सा समय क्षेत्र है, यह जांचने का कोई तरीका है?


120
2017-07-11 04:57


मूल




जवाब:


आमतौर पर, TZ पर्यावरण चर आपको कुछ उपयोगी बताएगा। हालांकि, जैसे कार्यों का उपयोग करना सबसे अच्छा है mktime() तथा localtime() बीच में कनवर्ट करने के लिए time_t और एक स्थानीय टाइमज़ोन प्रतिनिधित्व। अर्थात्, अपने आप को रूपांतरण करने की कोशिश मत करो


18
2017-07-11 04:59



क्या कोई कमांड है जो उपयोगकर्ता के टाइमज़ोन के बारे में बताता है?
ज़रूर, date मै तुम्हे बताऊंगा। - Greg Hewgill
मेरे पास सर्वर का दो उदाहरण है, यदि मैं दोनों सर्वर में "दिनांक" कमांड देता हूं तो यह अलग-अलग समय दिखाता है। दोनों सर्वर के लिए समय क्षेत्र आईएसटी है, एक सर्वर का समय: सोम जुलाई 11 10:39:31 IST 2011 और अन्य सर्वर सोम जुलाई 11 10:35:31 IST 2011 .. 4 मिनट का अंतर है
सटीक पांगोलिन पर echo $TZ मेरे लिए कुछ भी नहीं देता है। - Iain Samuel McLean Elder
@GregHewgill आपका उत्तर पहले दृश्य में सहायक नहीं है। कृपया अपने उत्तर को संपादित करने पर विचार करें। नीचे सबसे अधिक वोट दिया गया जवाब देखें। मैं अभी आपके उत्तर को कम कर दूंगा। इसके अलावा मेरी मशीनों पर डिफ़ॉल्ट रूप से कोई TZ env नहीं है। - therealmarv


यदि आप कंसोल से हैं, तो बस टाइप करें:

date +%Z

234
2017-07-11 05:01



अच्छा, अच्छी तरह से काम करता है। - Silver Moon
यह स्वीकार्य उत्तर होना चाहिए - KalenGi
अच्छा बिंदु ... उस प्रभाव का जवाब बदल दिया - Rasman
और उबंटू में कमांड लाइन से टाइमज़ोन सेट करने के लिए, निम्न लिंक ऐसा करने के लिए तुच्छ, 1-लाइन कमांड प्रदान करता है: askubuntu.com/a/524362/182454 - Dan Nissenbaum
यह देता है +07 मेरे लिए। लेना Region/City डेबियन / आर्क आधारित लिनक्स पर, देखें यह जवाब। - Tom Hale


यदि आप संख्यात्मक टाइमज़ोन चाहते हैं:

date +'%:z %Z'

नमूना उत्पादन:

-05:00 EST

50
2018-02-13 16:22



इस आउटपुट ओएस एक्स पर :z EST - suspectus
अगर इसके लिए linux। - Paul Vargas
अधिक सटीक, यह जीएनयू पर लागू होता है date। BusyBox संस्करण मेरे मामले में कुछ गैर-सनसनीखेज, "%: z CEST" प्रिंट करता है। - Léo Lam
हालांकि, दिनांक +% z ओएस एक्स पर ठीक काम करता है। मेरा सुझाव है कि आप उत्तर संशोधित करें। - Neil Mayhew
हाय, @NeilMayhew धन्यवाद! हम ... लेकिन सवाल में टैग हैं linux  ubuntu-10.04 - Paul Vargas


मैं इसके बजाय "यूएस / पूर्वी" या "यूरोप / लंदन" फॉर्म में टाइमज़ोन खोजना चाहता था। आप इसे यहां पा सकते हैं:

  • / etc / timezone (उबंटू और रेड हैट पर मौजूद है? लेकिन अमेज़ॅन लिनक्स नहीं)
  • (रेड हैट स्टाइल सिस्टम पर) के रूप में ZONE="US/Eastern" / etc / sysconfig / घड़ी में
  • या आप / usr / share / zoneinfo के अंतर्गत फ़ाइलों में से किसी एक को / etc / localtime का प्रयास और मिलान कर सकते हैं; कष्टप्रद यह एक सिम्लिंक प्रतीत नहीं होता है, लेकिन आप उदा।

    सीडी / यूएसआर / शेयर / जोनिनोफो
      * * टाइप करें f -exec sh -c "diff -q / etc / localtime '{}'> / dev / null && echo {}" \;

    मिलान करने वाली फ़ाइलों को ढूंढने के लिए - ऐसा करने के लिए शायद बेहतर तरीके हैं, लेकिन यह काम करता है। कई मैच होंगे।


23
2017-08-31 09:58



find /usr/share/zoneinfo/ -type f| xargs md5sum | grep $(md5sum /etc/localtime | cut -d' ' -f1) - freiheit


उबंटू के लिए यह कोशिश करें:

$ cat /etc/timezone

नमूना उत्पादन:

Asia/Kolkata

अन्य distro संदर्भ के लिए: https://unix.stackexchange.com/questions/110522/timezone-setting-in-linux


8
2018-05-10 10:50



कभी कभी timedatectl set-timezone अद्यतन नहीं करता है /etc/timezone। देख यह जवाब एक समाधान के लिए आधारित है /etc/localtime। - Tom Hale


कभी-कभी आप द्वारा उत्पादित लघु रूप के बजाय कैनोलिक टाइमज़ोन की तलाश कर सकते हैं date %Z जैसे US/Eastern। सिस्टम पर timedatectl जैसे फेडोरा, timedatectl वर्तमान क्षेत्र सहित कई उपयोगी जानकारी आउटपुट करता है:

# timedatectl
      Local time: Tue 2016-09-13 17:10:26 EDT
  Universal time: Tue 2016-09-13 21:10:26 UTC
        RTC time: Tue 2016-09-13 21:10:26
       Time zone: US/Eastern (EDT, -0400)
 Network time on: yes
NTP synchronized: yes
 RTC in local TZ: no

दुर्भाग्य से, timedatectl लेता है set-timezone एक आदेश के रूप में, लेकिन कोई संगत नहीं है get-timezone। इसे निम्नानुसार पार्स करें:

# timedatectl status | grep "zone" | sed -e 's/^[ ]*Time zone: \(.*\) (.*)$/\1/g'`
US/Eastern

5
2017-09-13 21:16





$ strings /etc/localtime | tail -n 1
MST7MDT,M3.2.0,M11.1.0

तो मैं माउंटेन टाइम पर हूं। यद्यपि पर्यावरण परिवर्तनीय या बस डेट कमांड आउटपुट का उपयोग करने से ऊपर की सलाह कभी-कभी बेहतर होती है, इस पर निर्भर करती है कि आप इसका उपयोग कैसे करना चाहते हैं।


4
2017-07-22 04:58





  • / etc / sysconfig / घड़ी सेट करता है कि क्या हार्डवेयर घड़ी यूटीसी या स्थानीय समय के रूप में संग्रहीत है।
  • सिमलिंक / आदि / लोकलटाइम / usr / share / zoneinfo / ... अपना टाइमज़ोन सेट करने के लिए।
  • प्रकार /sbin/hwclock --systohc [--utc] हार्डवेयर घड़ी सेट करने के लिए।

लिनक्स कर्नेल हमेशा 1 जनवरी 1 9 70 यूटीसी के मध्यरात्रि के बाद सेकेंड की संख्या के रूप में समय की गणना करता है और गणना करता है चाहे आपकी हार्डवेयर घड़ी यूटीसी के रूप में संग्रहीत हो या नहीं। आपके स्थानीय समय के रूपांतरण रन-टाइम पर किए जाते हैं। इसके बारे में एक साफ बात यह है कि अगर कोई आपके कंप्यूटर को एक अलग टाइमज़ोन से उपयोग कर रहा है, तो वे टीजेड पर्यावरण चर सेट कर सकते हैं और सभी तिथियां और समय उनके टाइमज़ोन के लिए सही दिखाई देंगे।

यदि 1 जनवरी 1 9 70 के बाद से सेकेंड की संख्या यूटीसी को 32-बिट पूर्णांक के रूप में संग्रहीत किया जाता है (जैसा कि यह आपके लिनक्स / इंटेल सिस्टम पर है), तो आपकी घड़ी वर्ष 2038 को कभी-कभी काम करना बंद कर देगी। लिनक्स में कोई अंतर्निहित वाई 2 के समस्या नहीं है , लेकिन इसमें सालाना 2038 समस्या है। उम्मीद है कि हम सभी तब तक 64-बिट सिस्टम पर लिनक्स चलाएंगे। 64-बिट पूर्णांक हमारे घड़ियों को लगभग 2 9 2271 मिलियन वर्ष तक काफी अच्छी तरह से चलते रहेंगे।


2
2017-07-11 05:01





कुछ समाधान:

date +"%Z %z"
timedatectl | grep "Time zone"
cat /etc/timezone

मुझे (क्रमशः) दिया:

UTC +0000
Time zone: Etc/UTC (UTC, +0000)
Etc/UTC

मेरा कंप्यूटर यूटीसी पर है।


1
2018-04-16 15:36





समय क्षेत्र के लिए, आप भौगोलिक स्थान का उपयोग कर सकते हैं:

$ curl https://ipapi.co/timezone
America/Chicago

या:

$ curl http://ip-api.com/line?fields=timezone
America/Chicago

http://wiki.archlinux.org/index.php/time#Time_zone


1
2017-07-01 14:02





टीजेड या तिथि का उपयोग करना विश्वसनीय नहीं है क्योंकि यह आपको यूजर का टाइमज़ोन बताता है, न कि डिफ़ॉल्ट सिस्टम टाइमज़ोन।

डिफ़ॉल्ट सिस्टम टाइमज़ोन / etc / timezone में संग्रहीत होता है (जो अक्सर टाइमज़ोन के लिए विशिष्ट टाइमज़ोन डेटा फ़ाइल का प्रतीकात्मक लिंक होता है)। यदि आपके पास / etc / timezone नहीं है, तो / etc / localtime देखें। आम तौर पर यह "सर्वर का" टाइमज़ोन है। / etc / localtime अक्सर / usr / share / zoneinfo में एक टाइमज़ोन फ़ाइल के लिए एक सिम्लिंक होता है। सही टाइमज़ोन फ़ाइल का वह पथ आपको भूगोल जानकारी भी देगा।

नए लिनक्स में "timedatectl" है जो कमांड चलाते समय आपको बहुत सारी जानकारी देता है।

(एक साइड-नोड के रूप में, यदि आपके पास एक प्राचीन प्रणाली है जो अभी भी ओल्ड हार्ड-कोडेड टाइमज़ोन का उपयोग करती है, तो आप शायद उस पर एक आधुनिक टाइमज़ोन फ़ाइल कॉपी कर सकते हैं और यह काम करेगा। मुझे बदलते समय क्षेत्र को हल करने के लिए कई बार ऐसा करना पड़ा पुराने उपकरणों पर)।


0
2017-11-15 00:31