不能减去offset-naive和offset-aware的datetimes

问题:

我在PostgreSQL中有一个时区感知timestamptz字段。当我从表中拉取数据时,我想要减去时间,所以我可以得到它的年龄。
我遇到的问题是datetime.datetime.now()datetime.datetime.utcnow()似乎返回时区不知道的时间戳,这导致我得到这个错误:

TypeError: can't subtract offset-naive and offset-aware datetimes 

有没有办法避免这种情况(最好没有使用第三方模块)。
编辑:感谢您的建议,但是尝试调整时区似乎给我错误..所以我只是要使用时区不知道的时间戳在PG,并始终插入使用:

NOW() AT TIME ZONE 'UTC'

这样我的所有时间戳默认是UTC(即使这样做更麻烦)。

回答:

你试图去除时区意识?
来自http://pytz.sourceforge.net/

naive = dt.replace(tzinfo=None)

可能还需要添加时区转换。
编辑:请注意这个答案的年龄。以下是Python 3的答案。

 
 
Code问答: http://codewenda.com/topics/python/
Stackoverflow: Can’t subtract offset-naive and offset-aware datetimes

*转载请注明本文链接以及stackoverflow的英文链接

发表评论

电子邮件地址不会被公开。 必填项已用*标注

48 − = 38