Python 将历元时间格式转换为标准时间格式

Python 将历元时间格式转换为标准时间格式,python,python-3.x,Python,Python 3.x,我在将历元时间格式1585542406929转换为2020-09-14小时分秒格式时遇到问题 我试着运行这个,但它给了我一个错误 from datetime import datetime DATETIME_FORMAT = '%Y-%m-%d %H:%M:%S' datetime.utcfromtimestamp(df2.timestamp_ms).strftime('%Y-%m-%d %H:%M:%S') 错误:无法将序列转换为 我对这个datetime函数有什么不理解的?是否有更好

我在将历元时间格式
1585542406929
转换为2020-09-14小时分秒格式时遇到问题

我试着运行这个,但它给了我一个错误

from datetime import datetime

DATETIME_FORMAT = '%Y-%m-%d %H:%M:%S'

datetime.utcfromtimestamp(df2.timestamp_ms).strftime('%Y-%m-%d %H:%M:%S')
错误:无法将序列转换为
我对这个datetime函数有什么不理解的?是否有更好的功能,我应该使用


编辑:应该提到timestamp_ms是我的数据帧中名为df的列。

感谢@chepner帮助我理解其格式

快速解决方案如下所示:

# make a new column with Unix time as @ForceBru mentioned

start_date = '1970-01-01'

df3['helper'] = pd.to_datetime(start_date)


# convert your column of JSON dates / numbers to days 

df3['timestamp_ms'] = df3['timestamp_ms'].apply(lambda x: (((x/1000)/60)/60/24))


# add a day adder column

df3['time_added'] = pd.to_timedelta(df3['timestamp_ms'],'d')

# add the two columns together

df3['actual_time'] = df3['helper'] + df3['time_added']


请注意,您可能需要从实际时间戳中减去一些休息时间。例如,我在今天上午10:40发送了我的消息,当时是中部时间(美国中西部),但时间戳是在今天下午3:40。

感谢@chepner帮助我理解这是一种格式

快速解决方案如下所示:

# make a new column with Unix time as @ForceBru mentioned

start_date = '1970-01-01'

df3['helper'] = pd.to_datetime(start_date)


# convert your column of JSON dates / numbers to days 

df3['timestamp_ms'] = df3['timestamp_ms'].apply(lambda x: (((x/1000)/60)/60/24))


# add a day adder column

df3['time_added'] = pd.to_timedelta(df3['timestamp_ms'],'d')

# add the two columns together

df3['actual_time'] = df3['helper'] + df3['time_added']


请注意,您可能需要从实际时间戳中减去一些休息时间。例如,我在今天上午10:40(美国中西部时间)发送了我的消息,但时间戳将其设置为今天下午3:40。

datetime.utcfromtimestamp
使用一个整数值。我猜
df2.timestamp\u ms
是一个系列(许多整数值),所以这个函数当然不会与它们一起工作什么是
df2.timestamp\u ms
?JSON是如何在这里发挥作用的?刚刚编写了一个编辑,以确保知道timestamp_ms是我的数据帧df中的列。是否有一个函数可以重新格式化整列的时间戳?即使是整数,1585542406929也表示未来太远而无法表示的时间。首先将其除以1000,得到要转换的秒数,而不是毫秒数。(如果你这样做,你会得到一个从2020年3月30日开始的时间戳。如果它应该代表9月14日的时间戳,那么它的实际格式就不清楚了。)@bosois,
datetime.utcfromtimestamp
使用一个整数值。我猜
df2.timestamp\u ms
是一个系列(许多整数值),所以这个函数当然不会与它们一起工作什么是
df2.timestamp\u ms
?JSON是如何在这里发挥作用的?刚刚编写了一个编辑,以确保知道timestamp_ms是我的数据帧df中的列。是否有一个函数可以重新格式化整列的时间戳?即使是整数,1585542406929也表示未来太远而无法表示的时间。首先将其除以1000,得到要转换的秒数,而不是毫秒数。(如果你这样做,你会得到一个从2020年3月30日开始的时间戳。如果它应该代表9月14日的时间戳,那么它的实际格式就不清楚了。)@bosois,