30

如何在 python 中对当前时间应用偏移量?

换句话说,能够得到当前时间减去 x 小时和/或减去 m 分钟和/或减去 s 秒和/或减去 ms 毫秒

例如

curent time = 18:26:00.000

offset = 01:10:00.000

=>resulting time = 17:16:00.000
4

1 回答 1

49

使用 a datetime.datetime(),然后添加或减去datetime.timedelta()实例

>>> import datetime
>>> t = datetime.datetime.now()
>>> t - datetime.timedelta(hours=1, minutes=10)
datetime.datetime(2012, 12, 26, 17, 18, 52, 167840)

timedelta()对象不支持算术运算datetime.time();如果您需要使用现有datetime.time()对象的偏移量,只需使用它datetime.datetime.combine()来形成一个datetime.datetime()实例,进行计算,然后使用以下方法再次“提取”时间.time()

>>> t = datetime.time(1, 2)
>>> dt = datetime.datetime.combine(datetime.date.today(), t)
>>> dt
datetime.datetime(2012, 12, 26, 1, 2)
>>> dt -= datetime.timedelta(hours=5)
>>> dt.time()
datetime.time(20, 2)
于 2012-12-26T17:26:26.573 回答