您好, 欢迎来到 !    登录 | 注册 | | 设为首页 | 收藏本站

从日期和时区计算tm_isdst

从日期和时区计算tm_isdst

首先,不要包含time.strftime('%Z')您的格式。您要告诉它当前的GMT偏移量(包括夏令时关闭),并且[可能]使用它来设置tm_isdst。

没有这个,你应该得到一个结构体tm_isdst=-1

>>> time1 = time.strptime("2012-06-01 12:00:00", "%Y-%m-%d %H:%M:%s")
>>> time1
time.struct_time(tm_year=2012, tm_mon=6, tm_mday=1, tm_hour=12, tm_min=0,
tm_sec=0, tm_wday=4, tm_yday=153, tm_isdst=-1)

现在,您可以将其传递给mktime,它将根据给定的-1值“猜测” DST值(我将“ guess”用引号引起来,因为除了模棱两可的2AM情况之外,它总是正确的)。这将以time()格式给出绝对时间。

>>> time.mktime([prevIoUs value]) # my timezone is US Eastern
1338566400.0

然后,您可以使用此值调用localtime,它将具有正确设置的DST标志:

>>> time.localtime(1338566400).tm_isdst
1

您也可以跳过strptime步骤,并将值直接传递给mktime:

>>> time.mktime((2012,6,1,12,0,0,-1,-1,-1))
1338566400.0
其他 2022/1/1 18:37:32 有574人围观

撰写回答


你尚未登录,登录后可以

和开发者交流问题的细节

关注并接收问题和回答的更新提醒

参与内容的编辑和改进,让解决方法与时俱进

请先登录

推荐问题


联系我
置顶