Python可以';t减去偏移量原始和偏移量感知日期时间

Python可以';t减去偏移量原始和偏移量感知日期时间,python,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 = 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)
当我直接从模型中获取日期时,会出现以下错误:

打印(历元秒(自修改))

无法减去初始偏移量和感知偏移量的日期时间

所以我检查了
self.modified
epoch

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

我想我理解这个错误,并且需要使用相同的格式。但是,我不知道什么是
.601681+00:00
,以及如何做到这一点。请解释一下
后面是什么,以及如何使它们匹配?

点后面是时区信息,在这种情况下,我认为您不需要这些信息。只需通过以下方式清除时区信息:

date = date.replace(tzinfo=None)

点之后是时区信息,在这种情况下,我认为你不需要。只需通过以下方式清除时区信息:

date = date.replace(tzinfo=None)

如果您有datetime对象,则可以直接从该对象获取历元的秒数:

d = datetime.datetime(2015,1,1)
print int(d.strftime("%s"))
在你的问题中,
.601681
是时间上的额外分辨率,以微秒为单位,
+00:00
是UTC(以前是GMT)的偏移量,单位为小时:分钟。

如果您有一个datetime对象,您可以直接从该对象获取历元的秒数:

d = datetime.datetime(2015,1,1)
print int(d.strftime("%s"))
在你的问题中,
.601681
是时间上的额外分辨率,以微秒为单位,
+00:00
是UTC(以前是GMT)以小时:分钟为单位的偏移量。

此解决方案在python 3中不起作用。在Python3.3+中,可以改用timestamp():此解决方案在Python3中不起作用。在Python 3.3+中,可以改用timestamp()