2019年7月26日 星期五

[linux ]如何使用 date command 得到不同國家的時間 local time 與 timestamp 轉成 date string

[linux ]如何使用 date command 得到不同國家的時間 local time 與 timestamp 轉成 date string

可以使用 date 指令達到這個效果。
像是得到目前 utc timestamp

date -u +%s
1564100456

轉成可讀的 date string format
 date --date=@1564100456
Fri Jul 26 08:20:56 CST 2019

其實省略的預設的timezone配置
TZ="Asia/Taipei" date --date=@1564100456

如果要轉為其他時間的local time呢?
GMT
$ TZ="GMT" date --date=@1564100456
Fri Jul 26 00:20:56 GMT 2019
巴西時區
$ TZ="America/Sao_Paulo" date --date=@1564100456
Thu Jul 25 21:20:56 -03 2019

如果已知當地時間,想得到timestamp呢?

$ date -u -d "2019-07-26 12:00:00 -3" +%s
1564153200

$ TZ="America/Sao_Paulo" date --date=@1564153200
Fri Jul 26 12:00:00 -03 2019
                                                                                                                     
$ TZ="Asia/Taipei" date --date=@1564153200
Fri Jul 26 23:00:00 CST 2019

透過date 使用 得到 timestamp 再透過 TZ timezone的轉換就可以 得到當地時間了。

EXAMPLES
       Convert seconds since the epoch (1970-01-01 UTC) to a date

              $ date --date='@2147483647'

       Show the time on the west coast of the US (use tzselect(1) to find TZ)

              $ TZ='America/Los_Angeles' date

       Show the local time for 9AM next Friday on the west coast of the US

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

沒有留言:

張貼留言