PyCon 2011 - Hidden Treasures of the Python Standard Library - 获得夏时令标识符

本文介绍了一种方法来判断给定的 datetime 对象是否处于夏令时。通过将 datetime 对象转换为 struct_time,并利用 mktime 和 localtime 函数进行时间戳的转换,最后通过 tm_isdst 字段确定是否实行夏令时。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

本作品采用知识共享署名-非商业性使用-相同方式共享 3.0 Unported许可协议进行许可。允许非商业转载,但应注明作者及出处。


作者:liuyuan_jq

2011-03-30


datetime.datetime -> struct_time


for dt in [ datetime.datetime(2011, 2, 9, 9, 0), datetime.datetime(2011, 9, 30, 9, 0), ]: # Convert datetime -> struct_time time_t = time.struct_time(dt.timetuple())

struct_time -> seconds -> struct_time


# Round-trip: struct_time -> seconds -> struct_time local_time_t = time.localtime(time.mktime(time_t))

获得夏时令标识符


# The answer is in tm_isdst # 夏令时标识符 # 实行夏令时的时候,tm_isdst 为 正。 # 不实行夏令时的进候,tm_isdst 为 0 # 不了解情况时,tm_isdst()为负。 print dt, bool(local_time_t.tm_isdst)

完整代码


#!/usr/bin/env python # encoding: utf-8 # # Copyright (c) 2011 Doug Hellmann. All rights reserved. # """Detect whether a datetime value is within daylight savings time or not. """ #end_pymotw_header import time import datetime for dt in [ datetime.datetime(2011, 2, 9, 9, 0), datetime.datetime(2011, 9, 30, 9, 0), ]: # Convert datetime -> struct_time time_t = time.struct_time(dt.timetuple()) # Round-trip: struct_time -> seconds -> struct_time local_time_t = time.localtime(time.mktime(time_t)) # The answer is in tm_isdst # 夏令时标识符 # 实行夏令时的时候,tm_isdst 为 正。 # 不实行夏令时的进候,tm_isdst 为 0 # 不了解情况时,tm_isdst()为负。 print dt, bool(local_time_t.tm_isdst)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值