我希望使用bash命令从另一个时区(UTC-4)获取日期和时间,但我不希望将其配置为系统的默认TZ。
有什么简单的方法吗?
例如1(目前):
$ date
fri nov 7 13:15:35 UTC 2014例如2(我需要的):
$ date (+ some option for UTC-4)
fri nov 7 09:15:35 UTC 2014发布于 2014-11-07 13:26:06
你可以用
TZ=America/New_York date或者如果你想做日期运算,你可以用
date -d "+5 hours"发布于 2014-11-07 13:24:54
您可以在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发布于 2020-01-15 12:04:40
为此,我使用了一个小脚本,所以我不需要知道或记住我正在寻找的时区的确切名称。脚本使用一个搜索字符串作为参数,并给出与搜索匹配的任何时区的日期和时间。我把它命名为wdate。
#!/bin/bash
# Show date and time in other time zones
search=$1
format='%a %F %T %z'
zoneinfo=/usr/share/zoneinfo/posix/
if command -v timedatectl >/dev/null; then
tzlist=$(timedatectl list-timezones)
else
tzlist=$(find -L $zoneinfo -type f -printf "%P\n")
fi
grep -i "$search" <<< "$tzlist" \
| while read z
do
d=$(TZ=$z date +"$format")
printf "%-32s %s\n" "$z" "$d"
done示例输出:
$ wdate fax
America/Halifax Fri 2022-03-25 09:59:02 -0300或
$ wdate canad
Canada/Atlantic Fri 2022-03-25 10:00:04 -0300
Canada/Central Fri 2022-03-25 08:00:04 -0500
Canada/Eastern Fri 2022-03-25 09:00:04 -0400
Canada/Mountain Fri 2022-03-25 07:00:04 -0600
Canada/Newfoundland Fri 2022-03-25 10:30:04 -0230
Canada/Pacific Fri 2022-03-25 06:00:04 -0700
Canada/Saskatchewan Fri 2022-03-25 07:00:04 -0600
Canada/Yukon Fri 2022-03-25 06:00:04 -0700https://stackoverflow.com/questions/26802201
复制相似问题