我想知道如何操作Datetime和Time delta对象。我正在写一个不同行星有不同时间尺度的游戏。我想知道如何修改日期时间对象。
例如,如果我有一个日期时间对象 - 一些过去的日期时间对象,我想知道是否有可能知道6小时可能会进入不同的时间以及余下的分钟数是多少?
例如......
now = datetime.now()
then = some datetime object
diff = now - then
num 6 hour blocks = diff / 6 (rounded down)
minutes = diff % 6
谢谢!
答案 0 :(得分:2)
timedelta对象在Python 2.7中有一个total_seconds方法。所以你可以用它来解决它。当您从另一个日期时间对象中减去一个日期时间对象时,会得到一个timedelta对象。
from datetime import timedelta
minutes = 60
hours = 60 * minutes
days = 24 * hours
diff = timedelta(days=6)
days_in_the_past = int(diff.total_seconds() / days)
hours_remainder = diff.total_seconds() % days
hours_in_the_past = int(diff.total_seconds() / hours)
seconds_remainder = diff.total_seconds() % hours
这几乎是你想要做的吗?如果您使用的是旧版本的Python,那么您可以定义一个与total_seconds方法完全相同的函数,如下所示:
def total_seconds(timedelta_object):
return timedelta_object.days * 86400 + timedelta_object.seconds
答案 1 :(得分:0)
timedelta
个对象只有days
,seconds
和microseconds
个字段,所以我猜你需要花费数小时和几分钟才能使用seconds
:< / p>
num_blocks = diff.seconds//(6*3600)
minutes = (diff.seconds%(6*3600))//60