将UTC时间转换为时代格式

时间:2019-05-09 02:11:21

标签: python python-3.x datetime time python-datetime

我正在尝试将特定的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

2 个答案:

答案 0 :(得分: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())

答案 1 :(得分:0)

您可以使用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