我有一个从文件名中提取的日期/时间字符串。我知道时间戳是使用时区 A 编写的,我需要将其转换为时区 B 以进行进一步处理。这在 bash 中可能吗?
例如:
filenameTimestamp="2015-01-20 18:05:02"
timezoneA="Australia/Sydney"
timezoneB="Australia/Brisbane"
Run Code Online (Sandbox Code Playgroud)
我假设我必须使用时区 A 解析字符串,然后使用时区 B 将其再次输出到字符串。
要将悉尼的日期解释为美国洛杉矶的日期:
$ sec=$(TZ="Australia/Sydney" date +'%s' -d "2015-05-20 18:05:02")
$ TZ="America/Los_Angeles" date -d "@$sec"
Wed May 20 01:05:02 PDT 2015
Run Code Online (Sandbox Code Playgroud)
这是布里斯班的结果:
$ TZ="Australia/Brisbane" date -d "@$sec"
Wed May 20 18:05:02 AEST 2015
Run Code Online (Sandbox Code Playgroud)
TZ="Australia/Sydney" date +'%s' -d "2015-05-20 18:05:02"
这会暂时将时区设置为悉尼,并将日期“2015-05-20 18:05:02”转换为自纪元 (UTC) 以来的秒数。
sec=$(TZ="Australia/Sydney" date +'%s' -d "2015-05-20 18:05:02")
这可以将自纪元 (UTC) 以来的时间(以秒为单位)保存到 shell 变量中sec
。
TZ="America/Los_Angeles" date -d "@$sec"
这暂时将时区设置为洛杉矶并解释由 给出的日期sec
。
归档时间: |
|
查看次数: |
4190 次 |
最近记录: |