如何在命令行上将日期字符串转换为当前时区?

Dan*_*eck 12 terminal macos

如何2011-11-13 08:11:02 +0000在命令行上将日期/时间字符串(例如)转换为我的本地时区?

Dan*_*eck 18

使用date -jf "<input format>" "<input value>" +"<output format>".

以下将 UTC 日期转换为我的本地时区 (CET):

$ date -jf "%Y-%m-%d %H:%M:%S %z" "2011-11-13 08:11:02 +0000" +"%Y_%m_%d__%H_%M_%S"
2011_11_13__09_11_02
Run Code Online (Sandbox Code Playgroud)

如果为输入和输出指定相同的日期格式,则只会将时间转换为本地时区。但是,如示例中所示,您可以将其与格式转换相结合。

  • 可以通过临时设置`$TZ`来改变目标时区:`TZ=EST date -jf %H%z 23+0100 +%I%p` → `05PM` (2认同)