将Epoch时间戳转换为日期格式

时间:2015-06-04 13:56:07

标签: datetime time epoch

我有一个包含大量文档的.json文件,每个文档都是这样的:

{"_id":{"$oid":"54ff56116d"},"caption":{"created_time":"1421434541",....}

我需要在每个文档中将created_time转换为日期格式。

你有什么想法吗?

1 个答案:

答案 0 :(得分:0)

由于你有10位数字作为创建时间,你可能正在使用'Unix timestamps',它计算自The Epoch以来的秒数,即1970-01-01 00:00:00 +00:00(午夜) 1970年1月1日上午在UTC或GMT时区)。如果您有13位数字,那么自Java中使用的The Epoch以来可能是毫秒。还有其他系统,但这是一个合理的猜测。

有许多函数系统可以将这些值转换为日期。我有一个使用标准库函数的C程序,我用它来验证你的日期:

$ timestamp 1421434541
1421434541 = Fri Jan 16 10:55:41 2015
$ timestamp -u 1421434541
1421434541 = Fri Jan 16 18:55:41 2015
$ timestamp -T '%Y-%m-%d %H:%M:%S' -u 1421434541
1421434541 = 2015-01-16 18:55:41
$

(当地时区:美国/太平洋地区,又名America / Los_Angeles。)

该计划使用strtol()将字符串中的数字转换为long,然后使用localtime()gmtime()将其分解为struct tm,然后使用strftime()格式化结果。

GNU date命令也可用于执行此操作:

$ /usr/gnu/bin/date -d @1421434541 +'%Y-%m-%d %H:%M:%S'
2015-01-16 10:55:41
$

由于您尚未确定主机语言,因此无法告诉您要使用的内容。几乎可以保证,无论您选择何种语言,都可以使用代码来处理转换。