我想知道UTC-11时区(进入新年的最后一个时区)当前所在的年份,但我不确定如何做到这一点。
我可以访问pytz库,以及Django的新timezone模块,并且我正在使用支持时区的UTC datetime对象。
发布于 2012-12-27 00:24:02
最简单的方法是完全跳过时区处理,只使用timedelta(hours=11)从datetime中减去并查看year属性。
>>> (datetime.datetime.utcnow() - datetime.timedelta(hours=11)).year
2012发布于 2012-12-27 00:25:45
实际上,时区比这要复杂得多。当涉及到省电日期等(或者甚至更糟糕的行为:https://stackoverflow.com/a/6841479/289011)时,您可能拥有具有相同偏移量但具有不同设置的时区。
我认为对于这个特定的案例,您可以使用以下命令:
>>> "%s" % (datetime.datetime.utcnow() - datetime.timedelta(hours=11))
'2012-12-26 00:25:30.029864'就这一年:
>>> "%s" % (datetime.datetime.utcnow() - datetime.timedelta(hours=11)).year
'2012'编辑:是的,使用datetime.utcnow()而不是datetime.now()是个好主意。(我的错)
https://stackoverflow.com/questions/14043080
复制相似问题