在Mac OSX - BSD上将unix纪元时间转换为人类可读日期

Neh*_*hah 20 unix bash date epoch

在我的Mac OSX上,我的bash脚本有一个纪元时间"123439819723".我可以通过"date -r 123439819723"将日期转换为人类可读的格式,这给了我"Fri Aug 26 09:48:43 EST 5881".

但是我希望日期是mm/ddd/yyyy:hh:mi:ss格式."date --date"选项在我的机器上不起作用.

mik*_*dld 33

干得好:

# date -r 123439819723 '+%m/%d/%Y:%H:%M:%S'
08/26/5881:17:48:43
Run Code Online (Sandbox Code Playgroud)

  • 5881年?我喜欢你的乐观.我认为数量'123439819723`更可能是指毫秒,而不是秒,所以你想要'date -r 123439819'+%m /%d /%Y:%H:%M:%S'`,这给出了'11/29/1973:08:50:19` (7认同)

che*_*ner 11

要使用BSD转换UNIX纪元时间date,请使用

date -j 123439819723 -f %s
Run Code Online (Sandbox Code Playgroud)

-j防止date从试图设置系统时钟,并-f指定输入格式.您可以添加+<whatever>以设置输出格式,与GNU一样date.

  • 在OSX上,我必须将unix时间指定为最后一个参数:`date -j -f%s 1374432952` (14认同)
  • 这适用于 MacOS,但需要以秒为单位提供纪元时间(而不是毫秒 - 来自问题) (2认同)

ank*_*000 6

来自命令外壳

[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
Run Code Online (Sandbox Code Playgroud)