python datetime现在没有夏令时

mee*_*eep 3 python datetime

我迷失在tzinfo文档中.

我想为我的位置创建一个日期时间对象,该对象不包括夏令时的调整.

目前我丑陋地攻击它:

import time
import datetime
now=datetime.datetime.now()
if time.localtime().tm_isdst==1:
    now=now+datetime.timedelta(hours=-1)
Run Code Online (Sandbox Code Playgroud)

什么是正确的方法?

Fer*_*yer 6

如果您真的想通过消除DST的影响来创建"虚假"​​时间,那么您当前的解决方案将起作用.

但是,使用日期的最佳做法是在内部将所有日期表示为UTC,并且仅处理用户交互的时区差异.这样你就不必关心所有凌乱的细节了.

要为程序添加对所有时区的支持,请考虑使用PyTZ.

  • 建议使用UTC的+1 - 这确实是正确的方法.UTC是明确的,这是与时间一起工作的基本属性. (2认同)