【发布时间】:2020-12-13 16:03:31
【问题描述】:
import time
time1 = time.time()
现在,我们使用time.time() 来获取当前时间(以秒为单位)。如何将 GMT 当前时间以秒格式转换为 EDT 当前时间?
【问题讨论】:
import time
time1 = time.time()
现在,我们使用time.time() 来获取当前时间(以秒为单位)。如何将 GMT 当前时间以秒格式转换为 EDT 当前时间?
【问题讨论】:
您可以从 Unix 时间转到正确本地化的日期时间对象,例如
import time
from datetime import datetime, timezone
from zoneinfo import ZoneInfo # Python 3.9
# alternatively, instead of ZoneInfo:
# from dateutil.tz import gettz
time1 = time.time() # unix time, now
# sames as datetime.now(timezone.utc).timestamp()
dt = datetime.fromtimestamp(time1, tz=timezone.utc) # corresponding datetime object
dt_eastern = dt.astimezone(ZoneInfo('US/Eastern')) # gettz('US/Eastern')
print(dt_eastern)
print(repr(dt_eastern))
# 2020-08-25 01:27:05.230289-04:00
# datetime.datetime(2020, 8, 25, 1, 27, 5, 230289, tzinfo=tzfile('US/Eastern'))
【讨论】:
由于 GMT 时间比 EST/EDT 时间早 4 小时,
您只需以秒为单位将 time1 变量减去 4 小时(60 秒 * 60 分钟 * 4 小时 = 14,400 秒)
因此您的代码应如下所示:
import time
time_GMT = time.time()
time_EST = time_GMT - 14400
【讨论】: