如何将纪元转换为 yyyy-mm-ddThh:mm:ss linux

Posted

技术标签:

【中文标题】如何将纪元转换为 yyyy-mm-ddThh:mm:ss linux【英文标题】:How to convert epoch to yyyy-mm-ddThh:mm:ss linux 【发布时间】:2016-01-03 09:21:22 【问题描述】:

我想使用 linux 将像“1444039517190”这样的纪元转换为 yyyy-mm-ddThh:mm:ss?

我尝试使用以下脚本,但输出错误:

echo 1444039517190 | awk ' print strftime("%Y-%m-%d %H:%M:%S",$1) '

输出:

47729-10-16 09:06:30

【问题讨论】:

预期结果是什么? 【参考方案1】:

您的时间戳不是以秒为单位的;试试:

echo 1444039517190 | awk ' print strftime("%Y-%m-%d %H:%M:%S",$1/1000) '

或者,如果您不介意丢失精度:

date --date=@$((1444039517190 / 1000)) +%Y-%m-%d\ %H:%M:%S

并检查您的strftime(3) 版本是否支持较短的格式%F %T 而不是%Y-%m-%d %H:%M:%S

【讨论】:

【参考方案2】:

为什么不直接使用date?您还必须除以 1000。

date -d @1444039517.190

输出

Mon Oct  5 12:05:17 CEST 2015

【讨论】:

以上是关于如何将纪元转换为 yyyy-mm-ddThh:mm:ss linux的主要内容,如果未能解决你的问题,请参考以下文章

SQL - 将 yyyy-MM-ddThh:mm:ssZ 转换为没有时间的简单日期

如何使用日期格式化程序为“YYYY-MM-DDThh:mm[:ss[.uuuuuu]][+HH:MM|-HH:MM|Z]”转换日期?

sql server如何批量将yyyyMMddHHmmss字符串时间格式转换成yyyy-MM-ddTHH:mm:ss

将 ZULU 时间转换为 PST

尝试使用以下格式获取当前时间戳 YYYY-MM-DDTHH:MM:SS.MSSZ

将日期对象转换为ISO 8601格式的字符串