Datetime 将历元时间戳转换为日期格式

Datetime 将历元时间戳转换为日期格式,datetime,time,epoch,Datetime,Time,Epoch,我有一个.json文件,其中包含大量文档,每个文档如下所示: {"_id":{"$oid":"54ff56116d"},"caption":{"created_time":"1421434541",....} 我需要在我的每个文档中将创建的时间转换为日期格式 你知道吗?因为你有10位数字作为创建的时间,你可能在使用“Unix时间戳”,它从纪元开始计算秒数,即1970-01-01 00:00:00+00:00(1970年1月1日凌晨UTC或GMT时区的午夜)。如果您有13位数字,那么可能是从Ja

我有一个
.json
文件,其中包含大量文档,每个文档如下所示:

{"_id":{"$oid":"54ff56116d"},"caption":{"created_time":"1421434541",....}
我需要在我的每个文档中将创建的时间转换为日期格式


你知道吗?

因为你有10位数字作为创建的时间,你可能在使用“Unix时间戳”,它从纪元开始计算秒数,即1970-01-01 00:00:00+00:00(1970年1月1日凌晨UTC或GMT时区的午夜)。如果您有13位数字,那么可能是从Java中使用的纪元开始的毫秒数。还有其他系统,但这是一个似是而非的猜测

有很多函数系统可以将这些值转换为日期。我有一个使用标准库函数的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
$
(当地时区:美国/太平洋,又名美国/洛杉矶)

程序使用
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
$

因为您还没有确定您的宿主语言,所以实际上不可能告诉您使用什么。不过,无论您选择何种语言,都可以保证有代码来处理转换。

因为您有10位数字作为创建时间,所以您可能使用了“Unix时间戳”,它从1970-01-01 00:00+00:00开始计算秒数(1970年1月1日凌晨UTC或GMT时区的午夜)。如果您有13位数字,则可能是从Java中使用的历元开始的毫秒数。还有其他系统,但这是一个合理的猜测

有很多函数系统可以将这些值转换为日期。我有一个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
$
(当地时区:美国/太平洋,又名美国/洛杉矶)

程序使用
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
$

由于您尚未确定您的主机语言,因此实际上无法告诉您要使用什么。不过,无论您选择何种语言,都可以保证有代码可用于处理转换。

谢谢,我没有任何特定的主机语言,但我的操作系统是Linux。我的主要问题是如何为100000用户执行转换行?我不能一行一行地做,你怎么能避免一行一行地做呢?你必须读10万行(或一行10万条)并在找到时或找到后使用JSON库处理每一个。您没有指定所使用的语言的任何内容,因此很难为您提供太多帮助。GNU
date
一次处理一个日期/时间。My
timestamp
可以接受您传递给它的任意多个字符串-您的O/S可能会阻止我不要一次处理它们,但你可以在一次调用中处理数千行。你需要的信息不仅仅是时间……但你没有说什么。谢谢你的回答!这对我很有帮助,我没有任何特定的主机语言,但我的操作系统是Linux。我的主要问题是如何处理100000行?我不能一行一行地处理,你怎么能避免一个接一个地做呢?你必须阅读100000行(或一行100000条)并在找到时或找到后使用JSON库处理每一个。您没有指定所使用的语言的任何内容,因此很难为您提供太多帮助。GNU
date
一次处理一个日期/时间。My
timestamp
可以接受您传递给它的任意多个字符串-您的O/S可能会阻止我不要一次处理它们,但你可以在一次调用中处理数千行。你需要的信息不仅仅是时间……但你没有说什么。谢谢你的回答!这对我很有帮助,我没有任何特定的主机语言,但我的操作系统是Linux。我的主要问题是如何处理100000行?我不能一行一行地处理,你怎么能避免一个接一个地做呢?你必须阅读100000行(或一行100000条)并在找到时或找到后使用JSON库处理每一个。您没有指定所使用的语言的任何内容,因此很难为您提供太多帮助。GNU
date
一次处理一个日期/时间。My
timestamp
可以接受您传递给它的任意多个字符串-您的O/S可能会阻止我I don’我不能一次处理它们,但你可以在一次调用中处理数千次。你需要的信息不仅仅是时间……但你还没有说什么。谢谢你的回答!它帮助了我