我想通过bash命令从另一个时区(UTC-4)获取日期和时间,但我不想将其配置为系统的默认TZ。
有一个简单的方法吗?
例如1(当前):
$ date
fri nov 7 13:15:35 UTC 2014
E.g 2(我需要的):
$ date (+ some option for UTC-4)
fri nov 7 09:15:35 UTC 2014
答案 0 :(得分:4)
您可以使用
TZ=America/New_York date
或者如果你想做日期算术,你可以使用
date -d "+5 hours"
答案 1 :(得分:3)
您可以使用TZ
中的偏移值来获取不同时区的日期:
TZ=UTC date -R
Fri, 07 Nov 2014 13:55:07 +0000
TZ=UTC+4 date -R
Fri, 07 Nov 2014 09:54:52 -0400
答案 2 :(得分:1)
如果其他解决方案不起作用,请使用
date --date='TZ="UTC+4" 2016-08-22 10:37:44' "+%Y-%m-%d %H:%M:%S"
2016-08-22 16:37:44
答案 3 :(得分:0)
我为此使用了一个小脚本,所以我不必知道或记住我要查找的时区的确切名称。该脚本将搜索字符串作为参数,并给出与搜索匹配的任何时区的日期和时间。我将其命名为wdate
。
#!/bin/sh
# Show date and time in other time zones
search=$1
zoneinfo=/usr/share/zoneinfo/posix/
format='%a %F %T'
find -L $zoneinfo -type f \
| grep -i "$search" \
| while read z
do
d=$(TZ=$z date +"$format")
printf "%-34s %23s\n" ${z#$zoneinfo} "$d"
done
示例输出:
$ wdate fax
America/Halifax Wed 2020-01-15 07:55:43
或
$ wdate canad
Canada/Pacific Wed 2020-01-15 04:03:54
Canada/Central Wed 2020-01-15 06:03:54
Canada/Mountain Wed 2020-01-15 05:03:54
Canada/Saskatchewan Wed 2020-01-15 06:03:54
Canada/Atlantic Wed 2020-01-15 08:03:54
Canada/Newfoundland Wed 2020-01-15 08:33:54
Canada/Yukon Wed 2020-01-15 04:03:54
Canada/Eastern Wed 2020-01-15 07:03:54