如何在Python中将日期时间对象偏移12小时

9 投票
2 回答
32730 浏览
提问于 2025-04-16 03:49

日期时间对象让我有点困惑。我正在尝试弄明白怎么把一个日期时间对象往后推12个小时。另外,我还想知道怎么判断两个日期时间对象之间的差距,比如说是否相差1分钟或更多。

2 个回答

5

你可以使用 datetime.timedelta 来处理类似的事情。

from datetime import timedelta

datetime 的运算方式有点像普通的数学运算:你可以把一个 timedelta 对象加到一个 datetime 对象上,这样就可以改变它的时间:

dt = # some datetime object
dt_plus_12 = dt + timedelta(hours=12)

你也可以把两个 datetime 对象相减,这样就能得到一个 timedelta,表示它们之间的时间差:

dt2 = # some other datetime object
ONE_MINUTE = timedelta(minutes=1)
if abs(dt2 - dt) > ONE_MINUTE:
    # do something
32

datetime库里有一个叫做timedelta的对象,专门用来处理这种情况:

import datetime

mydatetime = datetime.now() # or whatever value you want
twelvelater = mydatetime + datetime.timedelta(hours=12)
twelveearlier = mydatetime - datetime.timedelta(hours=12)

difference = abs(some_datetime_A - some_datetime_B)
# difference is now a timedelta object

# there are a couple of ways to do this comparision:
if difference > timedelta(minutes=1):
    print "Timestamps were more than a minute apart"

# or: 
if difference.total_seconds() > 60:
    print "Timestamps were more than a minute apart"

撰写回答