为什么日期会转换为错误的时间?
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
答案 0 :(得分:84)
此特定时间戳是自纪元以来的毫秒数,而不是自纪元以来的标准秒数。除以1000:
$ date -d @1361234760.790
Mon Feb 18 17:46:00 MST 2013
答案 1 :(得分:5)
您可以使用bash算术扩展来执行除法:
date -d @$((value/1000))
请注意" value
"是一个bash变量,$
是可选的;即,可以使用$value
或value
。
答案 2 :(得分:0)
对于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