कमांड लाइन द्वारा टाइमजोन रूपांतरण


20

मुझे http://www.timeanddate.com/worldclock/converter.html के बारे में पता है

मैं समझ नहीं पा रहा हूं कि http://www.google.com को "पीएसटी में 5pm बीएसटी" जैसे एक प्राकृतिक स्वरूप में कैसे क्वेरी करें

या मुझे ऐसा ऐप लिखना है?


आप का क्या तात्पर्य है? कमांड लाइन लिनक्स? कमांड आप Google में टाइप कर सकते हैं? क्या?!
दाल हुंदल

शेल में कमांड लाइन और google का क्वेरी बॉक्स दोनों मेरे लिए कमांड लाइन हैं
hendry

1
शायद एक बेहतर उपकरण हवाई अड्डा कोड द्वारा शहरों को करेगा, SFO में 5pm LHR
hendry

@ वेंडी डेटूल आईटा और icao हवाईअड्डा कोडों के आधार पर टाइमजोन रूपांतरण कर सकते हैं: dateconv 2017-05-16T17:00 --from-zone iata:SFO --zone iata:LHR->2017-05-17T01:00:00
hroptatyr

जवाबों:


38

ताइपे में शाम के 6 बज रहे हैं, यहाँ कितने बजे हैं?

date --date='TZ="Asia/Taipei" 18:00'
Fri Jul 16 11:00:00 BST 2010

लंदन में सुबह 11 बजे, ताइपे में क्या समय है?

TZ=Asia/Taipei date -d "11:00 BST"
Fri Jul 16 18:00:00 CST 2010

अजीब बात है, लेकिन पहला तरीका मेरे लिए काम नहीं करता है: TZ=Europe/Moscow date --date='TZ="Asia/Taipei" 18:00' Mon Mar 27 18:00:00 CST 2017- यानी यह सिर्फ मुझे ताइपे में तारीख बताता है, इस समय बिंदु के लिए मेरी स्थानीय तारीख नहीं। हालांकि मैनपेज कहता है कि आपका तरीका सही है। क्या मुझे कुछ याद आ रहा है? .. coreutils 8.26, आर्क लिनक्स
MarSoft

timedatectl list-timezones|grep -i taipeiAsia/Taipeitimedatectl list-timezones|grep -i berlinEurope/Berlintimedatectl list-timezones|grep -i angelesAmerica/Los_Angeles
समयावधि

6

यह उदाहरण http://www.pixelbeat.org/cmdline.html#dates से है

यह अमेरिका के पश्चिमी तट पर सुबह 9 बजे के लिए स्थानीय समय देता है, जो दिन के प्रकाश बचत संक्रमणों के लिए जिम्मेदार है।

date --date='TZ="America/Los_Angeles" 09:00 next Fri'

TZ प्राप्त करने के लिए tzselect का उपयोग करें। पीएसटी प्रारूप अस्पष्ट है। IST = भारतीय मानक समय और उदाहरण के लिए आयरिश ग्रीष्मकालीन समय।


3
के बारे में पता नहीं था tzselect, धन्यवाद। यदि आप गलत 'TZ' इनपुट दर्ज करते हैं, तो आप भ्रामक परिणाम प्राप्त कर सकते हैं, उदाहरण के लिए TZ = लंदन दिनांक Fri Jul 16 10:28:52 London 2010
hendry

6

मुझे लगता है कि यह ओपी द्वारा पूछे जाने के करीब है (क्योंकि वह जरूरी नहीं जानता कि बीएसटी ताइपे है; और उत्तर यह नहीं समझाता है कि "बीएसटी" से "एशिया / ताइपे" कैसे प्राप्त किया जाए)।

पहले मेरी वर्तमान तिथि:

$ date
Mon Apr 21 13:07:21 MDT 2014

फिर जिस तारीख को मैं जानना चाहता हूं:

$ date -d '5pm BST'
Mon Apr 21 15:00:00 MDT 2014

तो मुझे पता है कि 5pm BST2 घंटे दूर है।

मैं आमतौर पर भूल जाता हूं कि मुझे EDT समय से दो घंटे जोड़ना या निकालना है इसलिए मेरे पास काम करने के लिए सामान्य समय-क्षेत्र के साथ थोड़ी स्क्रिप्ट है:

$ cat tz
#!/bin/bash
TZ='America/Edmonton' date
TZ='America/Chicago' date
TZ='America/New_York' date

और आउटपुट:

$ tz
Mon Apr 21 13:12:32 MDT 2014
Mon Apr 21 14:12:32 CDT 2014
Mon Apr 21 15:12:32 EDT 2014

आपकी tzस्क्रिप्ट के लिए वैध स्थान यहां देखे जा सकते हैं /usr/share/zoneinfo

लेकिन फिर से, भविष्य में कई बार मैं सिर्फ इसका उपयोग करता हूं date -d '<time> <timezone>'


2

वुल्फराम अल्फा का उपयोग करें । मूल URL पर…

http://www.wolframalpha.com/input/?i=

स्थान के साथ, रूपांतरण को जोड़ें +। उदाहरण के लिए:

http://www.wolframalpha.com/input/?i=5+PM+CET+to+PST

ध्यान दें कि वुल्फराम अल्फा को BSTसमय क्षेत्र के रूप में मान्यता नहीं देता है ।


कैसे जल्दी से समय क्षेत्र कोड को देखता है?
hendry

@hendry यह एक शांत इंटरैक्टिव ऑनलाइन नक्शा है: timeanddate.com/time/map/#
-cities=241

1

मुझे पता है कि यह एक पुराना धागा है, लेकिन मुझे उसी उपयोग के मामले के लिए एक कोड की आवश्यकता थी और, यहाँ के विचारों के आधार पर, इस छोटे से स्क्रिप्ट को विकसित किया:

#!/bin/bash
# ig20180122 - displays meeting options in other time zones
# set the following variable to the start and end of your working day
myday="8 20" # start and end time, with one space
# set the local TZ
myplace='America/Sao_Paulo'
# set the most common places
place[1]='America/Toronto'
place[2]='America/Chicago' # Houston as well
place[3]='Europe/Amsterdam'
place[4]='Europe/Dublin'
# add cities using place[5], etc.
# set the date format for search
dfmt="%m-%d" # date format for meeting date
hfmt="+%B %e, %Y" # date format for the header
# no need to change onwards
format1="%-10s " # Increase if your cities are large
format2="%02d "
mdate=$1
if [[ "$1" == "" ]]; then mdate=`date "+$dfmt"`; fi
date -j -f "$dfmt" "$hfmt" "$mdate"
here=`TZ=$myplace date -j -f "$dfmt" +%z  "$mdate"`
here=$((`printf "%g" $here` / 100))
printf "$format1" "Here" 
printf "$format2" `seq $myday` 
printf "\n"
for i in `seq 1 "${#place[*]}"`
do
    there=`TZ=${place[$i]} date -j -f "$dfmt" +%z  "$mdate"`
    there=$((`printf "%g" $there` / 100))
    city[$i]=${place[$i]/*\//}
    tdiff[$i]=$(($there - $here))
    printf "$format1" ${city[$i]}
    for j in `seq $myday`
    do
        printf "$format2" $(($j+${tdiff[$i]}))
    done
    printf "(%+d)\n" ${tdiff[$i]}
done

आप या तो आज या भविष्य की तारीख में समय के अंतर की जांच करने के लिए उपयोग कर सकते हैं:

16:08 $ meet
January 22, 2019
Here       08 09 10 11 12 13 14 15 16 17 18 19 20 
Toronto    05 06 07 08 09 10 11 12 13 14 15 16 17 (-3)
Chicago    04 05 06 07 08 09 10 11 12 13 14 15 16 (-4)
Amsterdam  11 12 13 14 15 16 17 18 19 20 21 22 23 (+3)
Dublin     10 11 12 13 14 15 16 17 18 19 20 21 22 (+2)
16:13 $ meet 05-24
May 24, 2019
Here       08 09 10 11 12 13 14 15 16 17 18 19 20 
Toronto    07 08 09 10 11 12 13 14 15 16 17 18 19 (-1)
Chicago    06 07 08 09 10 11 12 13 14 15 16 17 18 (-2)
Amsterdam  13 14 15 16 17 18 19 20 21 22 23 24 25 (+5)
Dublin     12 13 14 15 16 17 18 19 20 21 22 23 24 (+4)
16:13 $ 

HTH


शानदार स्क्रिप्ट! पहले से ही मेरे टूलसेट में जोड़ा गया, धन्यवाद! क्या आपको लगता है कि पंक्तियों के बजाय कॉलम में समय प्रदान करना संभव है?
cesarpachon

शायद। मैं उस के लिए एक उपयोग नहीं दिख रहा है, यद्यपि।
इउरी गाव्रोनस्की
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.