我将所有时间都存储在 UTC 中,并且我的系统设置为 UTC(尽管我在 EST)。
我将日期存储为:
Wed, 20 Feb 2013 03:51:39 +0000
但是,我想根据今天的 EST 选择信息,所以我试图:
获取当前时间为 UTC 并更改为 EST
datetime.utcnow().replace(tzinfo=tz.tzutc()).astimezone(tz.gettz('America/New_York')) 2013-02-19 23:17:20.560898-05:00
接下来我想获取 EST 日的开始时间 (2013-02-19 00:00:00.000000-05:00) 和结束时间 (2013-02-19 23:59:59.99999-05:00)
一旦我有了这些值,我想转换回 UTC,所以我有一个高低值,我可以通过正确的 EST(我的时区)来钳制它。
如果这不是最好的方法,或者我遗漏了一些东西(对我来说似乎过于复杂),请帮助我看到光明!
TIA
每个答案更新:
d1 = datetime.utcnow().replace(tzinfo=tz.tzutc()).astimezone(tz.gettz('America/New_York'))
print d1.strftime("%m %d %Y") ; d2 = d1.replace(day=d1.day + 1) ; print d2.strftime("%m %d %Y")
那会给我
02 20 2013
02 21 2013
哪个是对的。我现在需要从中生成完整的 EST 时间,然后转换为 UTC。这个我想不通。实际上,我可能想在完成时转换为 UTC 纪元时间戳,因为这将使我的数据库操作非常容易(<、>、== 等)。