自日期(不是纪元!)至今的秒数
Seconds since date (not epoch!) to date
我在 "seconds since 1981-01-01 00:00:00" 中有一个带有时间变量的数据集文件。
我需要的是将这个时间转换为日历日期 (YYYY-MM-DD HH:mm:ss)。
自纪元(1970 年)(时间戳、calendar.timegm 等)以来,我已经看到很多不同的方法来执行此操作,但我无法使用不同的参考日期来执行此操作。
我想做一些不漂亮但有效的事情:
time = 1054425600
st = (datetime.datetime(1981,1,1,0,0)-datetime.datetime(1970,1,1)).total_seconds()
datetime.datetime.fromtimestamp(st+time)
但欢迎使用任何其他方法!
你可以试试这个:
from datetime import datetime, timedelta
t0 = datetime(1981, 1, 1)
seconds = 1000000
dt = t0 + timedelta(seconds=seconds)
print dt
# 1981-01-12 13:46:40
这里 t0
设置为一个 datetime
对象,表示 1981-01-01
的 "epoch"。这是您的参考日期时间,您可以向其中添加一个用任意秒数初始化的 timedelta
对象。结果是代表所需日期时间的 datetime
对象。
N.B。这假设 UTC 时间
我在 "seconds since 1981-01-01 00:00:00" 中有一个带有时间变量的数据集文件。 我需要的是将这个时间转换为日历日期 (YYYY-MM-DD HH:mm:ss)。 自纪元(1970 年)(时间戳、calendar.timegm 等)以来,我已经看到很多不同的方法来执行此操作,但我无法使用不同的参考日期来执行此操作。
我想做一些不漂亮但有效的事情:
time = 1054425600
st = (datetime.datetime(1981,1,1,0,0)-datetime.datetime(1970,1,1)).total_seconds()
datetime.datetime.fromtimestamp(st+time)
但欢迎使用任何其他方法!
你可以试试这个:
from datetime import datetime, timedelta
t0 = datetime(1981, 1, 1)
seconds = 1000000
dt = t0 + timedelta(seconds=seconds)
print dt
# 1981-01-12 13:46:40
这里 t0
设置为一个 datetime
对象,表示 1981-01-01
的 "epoch"。这是您的参考日期时间,您可以向其中添加一个用任意秒数初始化的 timedelta
对象。结果是代表所需日期时间的 datetime
对象。
N.B。这假设 UTC 时间