![通过命令行进行时区转换](https://linux22.com/image/1244444/%E9%80%9A%E8%BF%87%E5%91%BD%E4%BB%A4%E8%A1%8C%E8%BF%9B%E8%A1%8C%E6%97%B6%E5%8C%BA%E8%BD%AC%E6%8D%A2.png)
我知道http://www.timeanddate.com/worldclock/converter.html
我不知道如何查询http://www.google.com采用合理自然的格式,例如“太平洋标准时间下午 5 点(英国夏令时)”。
或者我必须编写这样的应用程序吗?
答案1
台北现在是下午 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
答案2
我认为这更接近 OP 的问题(因为他不一定知道 BST 是台北?而且答案也没有解释如何从“BST”到达“亚洲/台北”)。
首先是我的当前日期:
$ date
Mon Apr 21 13:07:21 MDT 2014
然后我想知道的日期:
$ date -d '5pm BST'
Mon Apr 21 15:00:00 MDT 2014
所以我知道5pm BST
还有两个小时的路程。
我经常会忘记是否需要在 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>'
。
答案3
此示例来自http://www.pixelbeat.org/cmdline.html#dates
它给出了与美国西海岸上午 9 点相对应的当地时间,考虑了不同的夏令时转换。
date --date='TZ="America/Los_Angeles" 09:00 next Fri'
使用 tzselect 获取 TZ。PST 格式不明确。例如,IST = 印度标准时间和爱尔兰夏令时。
答案4
使用Wolfram Alpha。返回基本 URL…
http://www.wolframalpha.com/input/?i=
附加转换,将空格替换为+
。例如:
http://www.wolframalpha.com/input/?i=5+PM+CET+to+PST
请注意,Wolfram Alpha 似乎无法识别BST
时区。