我有一个日期格式:
22-Sep-2014 10:32:35
我需要一个 13 位时间戳,但是当我这样转换时
time=$(date -d "$DATE" '+%s')
我得到一个 10 位数字
当我尝试时
tt=$(date -d "$DATE");
time=$($tt +'%s * 1000 + %-N / 1000000')
我明白了
line 22: Mon: command not found
答案1
您的第二次尝试已经很接近了,只需要告诉date
命令在末尾添加毫秒即可。您可以使用%N
格式化程序来完成此操作。%N
扩展到纳秒,然后您可以使用 截断它%3N
。
但请注意,您的示例输入时间没有任何毫秒,因此您可以添加.000
到末尾。
假设这不是您想要的,这里有一个提供毫秒精度的示例:
$ DATE="22-Sep-2014 10:32:35.012"
$ date -d "$DATE" +'%s.%3N'
1411396355.012