在我的Mac OSX上,我的bash脚本有一个纪元时间123439819723
。我可以通过date -r 123439819723
将日期转换为人类可读的格式,这给了我Fri Aug 26 09:48:43 EST 5881
。
但我希望日期是mm/ddd/yyyy:hh:mi:ss
格式。 date --date
选项在我的机器上不起作用。
干得好:
# date -r 123439819723 '+%m/%d/%Y:%H:%M:%S'
08/26/5881:17:48:43
要使用BSD date
转换UNIX纪元时间,请使用
date -j 123439819723 -f %s
-j
阻止date
尝试设置系统时钟,-f
指定输入格式。您可以添加+<whatever>
来设置输出格式,与GNU date
一样。
从命令Shell
[aks@APC ~]$ date -r 1474588800
Fri Sep 23 05:30:00 IST 2016
[aks@APC ~]$ date -ur 1474588800
Fri Sep 23 00:00:00 UTC 2016
[aks@APC ~]$ echo "1474588800" | xargs -I {} date -jr {} -u
Fri Sep 23 00:00:00 UTC 2016
在Mac OS上运行的组合解决方案。
Shell代码:
T=123439819723
D=$(date -j -f %s $(($T/1000)) '+%m/%d/%Y:%H:%M:%S').$(($T%1000))
echo "[$T] ==> [$D]"
输出:
[123439819723] ==> [11/29/1973:11:50:19.723]
或者一行:
> echo 123439819723 | { read T; D=$(date -j -f %s $(($T/1000)) '+%m/%d/%Y:%H:%M:%S').$(($T%1000)); echo "[$T] ==> [$D]" }
[123439819723] ==> [11/29/1973:11:50:19.723]