61

日期如何转换为错误时间?

result=$(ls /path/to/file/File.*)
#/path/to/file/File.1361234760790

currentIndexTime=${result##*.}
echo "$currentIndexTime"
#1361234760790

date -d@"$currentIndexTime"
#Tue 24 Oct 45105 10:53:10 PM GMT
4

3 回答 3

123

这个特定的时间戳是自纪元以来的毫秒数,而不是自纪元以来的标准秒数。除以 1000:

$ date -d @1361234760.790
Mon Feb 18 17:46:00 MST 2013
于 2013-05-01T02:17:05.410 回答
20

对于 Mac OS X,它是date -r <timestamp_in_seconds_with_no_fractions>

$ date -r 1553024528
Tue Mar 19 12:42:08 PDT 2019

或者

$ date -r `expr 1553024527882 / 1000`
Tue Mar 19 12:42:07 PDT 2019

或者

$ date -r $((1553024527882/1000))
Tue Mar 19 12:42:07 PDT 2019
于 2019-03-20T22:05:14.000 回答
17

您可以使用 bash 算术扩展来执行除法:

date -d @$((value/1000))

请注意,“ value”是一个$可选的 bash 变量;即,$value或者value可以使用。

于 2016-06-01T17:01:23.790 回答