将 UTC 时间转换为纪元格式
Converting a UTC Time to Epoch format
我正在尝试将特定的 UTC 时间和日期转换为自纪元以来的秒数;但是,由于我不在 UTC 时区,所以我无法弄清楚如何执行此操作。
我尝试使用 datetime 模块将日期和时间转换为纪元以来的秒数,但是 python 一直在使用我系统的本地时间,因此返回值相差 7 小时。我知道我可以简单地减去 7*60 这样它就可以在我的时区工作;但是,我需要它在多个时区工作,而无需将时间更改硬编码到我的程序中。
除使用系统时间 (MST) 外,此方法有效,但我正在寻找专门针对 UTC 时间的解决方案。请注意,此处定义的变量代表了一个 UTC 时间示例,我试图将其转换为纪元以来的秒数。
import datetime
year=2019
month=5
day=9
hour=21
minute=45
Time=datetime.datetime(year, month, day, hour, minute).timestamp()
print(Time)
输出:
1557463500.0
期望的输出(7 小时前):
1557438300.0
import datetime
year=2019
month=5
day=9
hour=21
minute=45
e = datetime.datetime(1970, 1, 1, 0, 0)
t = datetime.datetime(year, month, day, hour, minute)
print((t-e).total_seconds())
您可以使用 datetime.datetime.utcfromtimestamp(0).timestamp()
计算纪元日期的时间戳,然后从中减去当前时间戳
import datetime
year=2019
month=5
day=9
hour=21
minute=45
#Date timestamp
dt_timestamp=datetime.datetime(year, month, day, hour, minute).timestamp()
#Epoch timestamp
epoch = datetime.datetime.utcfromtimestamp(0).timestamp()
#Epoch
print(dt_timestamp-epoch)
输出将是
1557438300.0
我正在尝试将特定的 UTC 时间和日期转换为自纪元以来的秒数;但是,由于我不在 UTC 时区,所以我无法弄清楚如何执行此操作。
我尝试使用 datetime 模块将日期和时间转换为纪元以来的秒数,但是 python 一直在使用我系统的本地时间,因此返回值相差 7 小时。我知道我可以简单地减去 7*60 这样它就可以在我的时区工作;但是,我需要它在多个时区工作,而无需将时间更改硬编码到我的程序中。
除使用系统时间 (MST) 外,此方法有效,但我正在寻找专门针对 UTC 时间的解决方案。请注意,此处定义的变量代表了一个 UTC 时间示例,我试图将其转换为纪元以来的秒数。
import datetime
year=2019
month=5
day=9
hour=21
minute=45
Time=datetime.datetime(year, month, day, hour, minute).timestamp()
print(Time)
输出:
1557463500.0
期望的输出(7 小时前):
1557438300.0
import datetime
year=2019
month=5
day=9
hour=21
minute=45
e = datetime.datetime(1970, 1, 1, 0, 0)
t = datetime.datetime(year, month, day, hour, minute)
print((t-e).total_seconds())
您可以使用 datetime.datetime.utcfromtimestamp(0).timestamp()
计算纪元日期的时间戳,然后从中减去当前时间戳
import datetime
year=2019
month=5
day=9
hour=21
minute=45
#Date timestamp
dt_timestamp=datetime.datetime(year, month, day, hour, minute).timestamp()
#Epoch timestamp
epoch = datetime.datetime.utcfromtimestamp(0).timestamp()
#Epoch
print(dt_timestamp-epoch)
输出将是
1557438300.0