python 将 unix 时间转换为 utc 时间时的日期不正确
python Incorrect date when converting unix time to utc time
我想将 unix 时间戳转换为 utc 时间。我必须使用下面的代码转换它,但每次我得到的结果都不正确。在线日期转换器 returns 正确结果。如何将日期转换为计算两个时间段之间的小时数?
import datetime
print(datetime.datetime.fromtimestamp(1633438809404))
ValueError: year 53731 is out of range
import time
epoch = 1633438809404
time_obj = time.localtime(int(epoch))
print(time_obj)
time.struct_time(tm_year=53731, tm_mon=8, tm_mday=13, tm_hour=18, tm_min=36, tm_sec=44, tm_wday=0, tm_yday=225, tm_isdst=0)
import pandas
timestamp = 1633438809404
unix_conversion=pandas.to_datetime(timestamp, unit='ns')
print(str(unix_conversion))
1970-01-01 00:27:13.438809404
您提供的时间戳 (1633438809404
) 是 毫秒 的时间戳,是吗?如果是这样,则在将其提供给 datetime.datetime.fromtimestamp
(需要以秒为单位的时间戳)之前将其除以 1000:
>>> datetime.fromtimestamp(1633438809404/1000)
datetime.datetime(2021, 10, 5, 9, 0, 9, 404000)
或者,在使用 pandas.to_datetime
时,确保使用 unit='ms'
:
>>> timestamp = 1633438809404
>>> unix_conversion=pandas.to_datetime(timestamp, unit='ms')
>>> unix_conversion
Timestamp('2021-10-05 13:00:09.404000')
我想将 unix 时间戳转换为 utc 时间。我必须使用下面的代码转换它,但每次我得到的结果都不正确。在线日期转换器 returns 正确结果。如何将日期转换为计算两个时间段之间的小时数?
import datetime
print(datetime.datetime.fromtimestamp(1633438809404))
ValueError: year 53731 is out of range
import time
epoch = 1633438809404
time_obj = time.localtime(int(epoch))
print(time_obj)
time.struct_time(tm_year=53731, tm_mon=8, tm_mday=13, tm_hour=18, tm_min=36, tm_sec=44, tm_wday=0, tm_yday=225, tm_isdst=0)
import pandas
timestamp = 1633438809404
unix_conversion=pandas.to_datetime(timestamp, unit='ns')
print(str(unix_conversion))
1970-01-01 00:27:13.438809404
您提供的时间戳 (1633438809404
) 是 毫秒 的时间戳,是吗?如果是这样,则在将其提供给 datetime.datetime.fromtimestamp
(需要以秒为单位的时间戳)之前将其除以 1000:
>>> datetime.fromtimestamp(1633438809404/1000)
datetime.datetime(2021, 10, 5, 9, 0, 9, 404000)
或者,在使用 pandas.to_datetime
时,确保使用 unit='ms'
:
>>> timestamp = 1633438809404
>>> unix_conversion=pandas.to_datetime(timestamp, unit='ms')
>>> unix_conversion
Timestamp('2021-10-05 13:00:09.404000')