gpt4 book ai didi

python - 使用 .dst() 函数测试 datetime.datetime 是否处于夏令时,不返回带有 pytz 时区的值

转载 作者:太空宇宙 更新时间:2023-11-04 05:01:02 25 4
gpt4 key购买 nike

我正在尝试测试任意本地化日期时间对象是否处于夏令时。

这个问题与许多已经问过的问题类似。例如。 ( Daylight savings time in Python )

在这些板中,一种测试日期时间是否采用 DST 的方法是使用内置函数 .dst()。这被包装成 bool,如:

if bool(mydatetimeobject.dst()):
print ("date is DST!")

但是,每当我创建一个 aribtrary 日期时间并传递一个 tztimezone 时,.dst() 函数不会报告任何内容。好像没有设置时区!

检查此代码片段以查看问题:

>>> from datetime import datetime
>>> import pytz
>>> localtime = pytz.timezone('US/Central')

>>> mydate = datetime(2004,3,1) # day in standard time
>>> localtime.localize(mydate)
datetime.datetime(2004, 3, 1, 0, 0, tzinfo=<DstTzInfo 'US/Central' CST-1 day, 18:00:00 STD>)
>>> mydate.dst()

>>> mydate = datetime(2004,5,1) #day in daylight time
>>> localtime.localize(mydate)
datetime.datetime(2004, 5, 1, 0, 0, tzinfo=<DstTzInfo 'US/Central' CDT-1 day, 19:00:00 DST>)
>>> mydate.dst()
>>> bool(mydate.dst())
False

最佳答案

它可以工作,但您需要将 localtime.localize() 结果分配给一个变量并进行比较。现在您只需显示输出并检查原始的原始日期时间的 .dst()。

a = localtime.localize(mydate)
bool(a.dst())

返回 True(假设 mydate 在 DST 中)。

关于python - 使用 .dst() 函数测试 datetime.datetime 是否处于夏令时,不返回带有 pytz 时区的值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45736474/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com