可能重复:
Python 日期时间到 Unix 时间戳
有没有办法将 a 转换datetime
为int
,表示自 2012 年 1 月以来的分钟数,以便int
可以对其进行修改、写入数据库、进行比较等等?编辑:我运行它的服务器使用 Python 2.6.6
可能重复:
Python 日期时间到 Unix 时间戳
有没有办法将 a 转换datetime
为int
,表示自 2012 年 1 月以来的分钟数,以便int
可以对其进行修改、写入数据库、进行比较等等?编辑:我运行它的服务器使用 Python 2.6.6
减去两个datetime.datetime
对象会给你一个timedelta
object,它有一个.total_seconds()
方法(在 Python 2.7 中添加)。将其除以 60 并转换int()
为自参考日期以来的分钟数:
import datetime
january1st = datetime.datetime(2012, 01, 01)
timesince = datetime.datetime.now() - january1st
minutessince = int(timesince.total_seconds() / 60)
或在 python shell 中:
>>> import datetime
>>> january1st = datetime.datetime(2012, 01, 01)
>>> timesince = datetime.datetime.now() - january1st
>>> minutessince = int(timesince.total_seconds() / 60)
>>> minutessince
346208
对于 python 2.6 及更早版本,您必须使用.days
and.seconds
属性来计算分钟数:
minutessince = timesince.days * 1440 + timesince.seconds // 60
这也给了你一个整数。
如果您想要两个日期之间的 delta 分钟,您可以datetime.timedelta
通过减去两个日期来创建一个对象(请参阅此处),然后检索分钟,如本问题所示:
通过减去日期时间,您可以获得时间增量。这个 timedelta 可以自己划分给你你想要的:
(datetime.datetime.now() - datetime.datetime(2012, 1, 1)) // datetime.timedelta(minutes=1)
(此代码仅对 python3 有效,这就是为什么每个人都应该切换到 python3 ;-))
>>> import datetime
>>> now = datetime.datetime.now()
>>> then = datetime.datetime(year=2012, month=1, day=1)
>>> delta=now-then
这是一个表示时间间隔的 timedelta 对象。
>>> print delta
240 days, 11:05:25.507000
要计算该间隔内的分钟数,请使用:
>>> print delta.total_seconds() / 60
346265.42511666665