有没有办法将datetime
转换为int
,代表自2012年1月以来的分钟数,以便可以修改此int
,将其写入数据库,比较等等?
编辑:
我运行它的服务器使用Python 2.6.6
答案 0 :(得分:19)
减去两个datetime.datetime
个对象会得到timedelta
object,其中有一个.total_seconds()
method(在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
和.seconds
属性来计算分钟数:
minutessince = timesince.days * 1440 + timesince.seconds // 60
也会给你一个整数。
答案 1 :(得分:2)
如果您想要两个日期之间的增量分钟,可以通过减去两个日期(请参阅here)来创建datetime.timedelta
对象,然后检索此问题中显示的分钟数:
答案 2 :(得分:2)
通过减去日期时间,您可以拥有timedelta。这个timedelta可以分为自己想要的东西:
(datetime.datetime.now() - datetime.datetime(2012, 1, 1)) // datetime.timedelta(minutes=1)
(此代码仅对python3有效,这就是为什么每个人都应该切换到python3 ;-))
答案 3 :(得分:1)
>>> 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