首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >DST在pytz Python中的DST时丢失

DST在pytz Python中的DST时丢失
EN

Stack Overflow用户
提问于 2014-06-26 22:01:40
回答 1查看 2.3K关注 0票数 0

我有一个字符串格式

代码语言:javascript
复制
frmt = "%m-%d-%Y %I:%M:%S %p"

当我将now()转换为这种格式& back时,我会丢失DST。

代码语言:javascript
复制
print datetime.strptime(datetime.now().strftime(frmt), frmt).replace(tzinfo=pytz.timezone("US/Eastern")).dst()


print datetime.now(tz=pytz.timezone("US/Eastern")).dst()

第一次打印返回1:00:00,第二次打印返回0:00:00。

在使用datetime.strptime时,有什么方法可以保持DST吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-06-26 22:03:55

根据pytz文档

这个库不同于文档化的用于tzinfo实现的Python;如果您想要创建本地挂钟时间,则需要使用本文档中记录的localize()方法。..。

您还应该考虑从“现在”开始,根据UTC,而不是根据您自己的计算机的时区。然后你可以转换到你想要的时区。

另外,您应该使用"America/New_York"而不是"US/Eastern",因为后者仅用于向后兼容性目的。它会成功的,但它不是首选的。

代码语言:javascript
复制
utc_dt = pytz.utc.localize(datetime.utcnow())
eastern_dt = utc_dt.astimezone(pytz.timezone("America/New_York"))
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/24440960

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档