我有一个字符串格式
frmt = "%m-%d-%Y %I:%M:%S %p"当我将now()转换为这种格式& back时,我会丢失DST。
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吗?
发布于 2014-06-26 22:03:55
根据pytz文档
这个库不同于文档化的用于tzinfo实现的Python;如果您想要创建本地挂钟时间,则需要使用本文档中记录的
localize()方法。..。
您还应该考虑从“现在”开始,根据UTC,而不是根据您自己的计算机的时区。然后你可以转换到你想要的时区。
另外,您应该使用"America/New_York"而不是"US/Eastern",因为后者仅用于向后兼容性目的。它会成功的,但它不是首选的。
utc_dt = pytz.utc.localize(datetime.utcnow())
eastern_dt = utc_dt.astimezone(pytz.timezone("America/New_York"))https://stackoverflow.com/questions/24440960
复制相似问题