与Unix兼容的Perl命令

时间:2017-10-03 18:46:38

标签: shell perl unix posix

我现在正在做的一段代码是将日期/时间戳转换为毫秒。

日期参数不能在我的Unix机器上工作,就像-d我收到一条错误信息 (日期:非法选项 - d 用法:日期[-u] [+字段描述符])。

所以要求如下所示我有一个输入日期格式如下,我想将其转换为毫秒。实施例

Input Date = 2017-09-19 19:36:12.763
Output (in milliseconds) = 1567299281726 (something similar)

希望现在有意义吗?

1 个答案:

答案 0 :(得分:1)

与perl命令类似,GNU date命令不处理毫秒。你可以这样做(用bash或ksh)

input_date="2017-09-19 19:36:12.763"
IFS=. read -r datetime milliseconds <<<"$input_date"
date -d "$datetime" "+%s$milliseconds"
1505864172763

然后,走另一条路:

timestamp=1505864172763
milliseconds=$(( timestamp % 1000 ))
date -d "@$((timestamp / 1000))" "+%F %T.$milliseconds"
2017-09-19 19:36:12.763