如何检查夏令时是否生效?Python夏令时
回答
您可以使用time.localtime
并查看返回值中的tm_isdst
标志。
>>> import time
>>> time.localtime()
(2010, 5, 21, 21, 48, 51, 4, 141, 0)
>>> _.tm_isdst
0
使用time.localtime()
,你可以问同一个问题的任意时间,看看是否DST将是(或曾经)在当前时区的影响。
如果您想检查日光是否与当前的计算机设置一起生效,请使用time.daylight。
>>> import time
>>> print time.daylight
time.daylight只是说电脑是否是目前正处于夏令时,如果没有电脑有“自动调整为夏令时时钟”设置。对于那些设置为不进行夏令时调整的电脑,time.daylight将全年始终为0。
确定计算机是否会在一年中调整夏令时的一种方法是获取由time.tzname返回的元组,并且如果它们存在差异(即,len(set(time.tzname))!= 1 ),那么电脑会开启夏令时调整功能。
'time.daylight只说明电脑当前是否处于夏令时状态 - 这不是事实。 'time.daylight'只会说明计算机是否在时区中,而时区会有与时间相关的时间变化。它没有说明它们是否有效。这可以用'tm_isdst'来检查 – 2013-03-24 06:17:23
BTW:tzname的文档:'一个包含两个字符串的元组:第一个是本地非DST时区的名称,第二个是本地DST时区的名称。如果没有定义DST时区,则不应使用第二个字符串。“即使没有定义dst,len也可能> 1。 – 2013-03-24 08:24:27
投票删除答案,因为它不正确。 – 2016-09-21 13:51:08
- 1. 夏威夷的夏令时
- 2. intlDateFormatter夏令时
- 3. MySQL - 夏令时
- 4. CodeIgniter夏令时
- 5. iCalendar夏令时
- 6. UTC时间,时区,夏令时和夏令时切换日期
- 7. 计算夏令时和非夏令时之间的时差
- 8. 使用Objective-C/C查找夏令时(夏令时)时间戳?
- 9. CTimeSpan.GetDays()和夏令时
- 10. oracle to_char夏令时
- 11. 夏令时间戳
- 12. “夏令时”,在DOS
- 13. 夏令时问题
- 14. log4j和夏令时
- 15. 夏令时和DateTime.AddHour()
- 16. postgres夏令时timezone
- 17. Java8和夏令时
- 18. 夏令时支持
- 19. TimeZoneInfo和夏令时
- 20. 夏令时在java
- 21. 时区和夏令
- 22. 夏令时,夏令时PHP错误检查
- 23. 时区,夏令时等
- 24. vbscript时区和夏令时
- 25. XML时区 - 夏令时
- 26. xts子集 - 夏令时
- 27. 日期和夏令时间
- 28. 夏令时和睡眠
- 29. java日期夏令时
- 30. 日期无夏令时
使用time.daylight属性可能会更清晰一些。如果您当前的时区有DST,它将返回一个非零结果。 – 2010-05-21 15:33:30
@brian buck:虽然不同。对于给定的时区,'time.daylight'是恒定的,因为日光区域存在或不存在。另一方面,'tm_isdst'标志反映在DST开始和结束日期内给定的时间是*。 – 2010-05-21 19:28:08
'time.daylight'的这种混淆似乎是一个更大的问题:http://bugs.python.org/issue7229。 – 2011-12-06 22:19:00