python时间偏移 [英] python time offset

查看:41
本文介绍了python时间偏移的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

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

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

例如

当前时间 = 18:26:00.000偏移量 = 01:10:00.000=> 结果时间 = 17:16:00.000

解决方案

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

<预><代码>>>>导入日期时间>>>t = datetime.datetime.now()>>>t - datetime.timedelta(小时=1,分钟=10)datetime.datetime(2012, 12, 26, 17, 18, 52, 167840)

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

<预><代码>>>>t = 日期时间.时间(1, 2)>>>dt = datetime.datetime.combine(datetime.date.today(), t)>>>dtdatetime.datetime(2012, 12, 26, 1, 2)>>>dt -= datetime.timedelta(小时=5)>>>dt.time()日期时间.时间(20, 2)

How can I apply an offset on the current time in python?

In other terms, be able to get the current time minus x hours and/or minus m minutes and/or minus s secondes and/or minus ms milliseconds

for instance

curent time = 18:26:00.000

offset = 01:10:00.000

=>resulting time = 17:16:00.000

解决方案

Use a datetime.datetime(), then add or subtract datetime.timedelta() instances.

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

timedelta() arithmetic is not supported for datetime.time() objects; if you need to use offsets from an existing datetime.time() object, just use datetime.datetime.combine() to form a datetime.datetime() instance, do your calculations, and 'extract' the time again with the .time() method:

>>> 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)

这篇关于python时间偏移的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆