Python无法减去偏移初始化和偏移感知日期时间

时间:2015-08-17 09:20:22

标签: python

我有以下功能:

epoch = datetime(1970, 1, 1)

def epoch_seconds(date):
    """Returns the number of seconds from the epoch to date."""
    print(epoch)
    td = date - epoch
    return td.days * 86400 + td.seconds + (float(td.microseconds) / 1000000)

当我直接从我的模型中取一个日期时,我收到以下错误:

  

打印(epoch_seconds(self.modified))

无法减去偏移天真和偏移感知日期时间

所以我检查了self.modifiedepoch

的格式
self.modified = 2015-08-13 16:29:37.601681+00:00
epoch = 1970-01-01 00:00:00

我认为我理解错误并且需要这些格式相同,但我不知道.601681+00:00是什么以及如何执行此操作。可以帮助解释.之后的内容以及如何使这些匹配吗?

2 个答案:

答案 0 :(得分:3)

在点之后,有时区信息,对于这种情况,我认为你不需要。请继续以这种方式摆脱时区信息:

date = date.replace(tzinfo=None)

答案 1 :(得分:1)

如果你有一个日期时间对象,你可以直接从它的纪元获得秒数:

d = datetime.datetime(2015,1,1)
print int(d.strftime("%s"))

在你的问题中,.601681是时间上的额外分辨率,以微秒为单位, +00:00是以小时为单位的偏移量:UTC(以前为GMT)的分钟数。