如何创建等于15分钟前的DateTime?


Answers:


232

导入datetime,然后导入神奇的timedelta内容:

In [63]: datetime.datetime.now()
Out[63]: datetime.datetime(2010, 12, 27, 14, 39, 19, 700401)

In [64]: datetime.datetime.now() - datetime.timedelta(minutes=15)
Out[64]: datetime.datetime(2010, 12, 27, 14, 24, 21, 684435)

1
注意,在Python 3中,您需要传递时区,now()以避免出现有关减去偏移天真和偏移datetime.datetime.now(datetime.timezone.utc)
已知

1
@nornagon在这里根本不适用;datetime对象是感知还是幼稚都没有关系,减去timedelta不管如何。
马丁·彼得斯

35
 datetime.datetime.now() - datetime.timedelta(minutes=15)

11

这就是要做的事情:

datetime.datetime.now() - datetime.timedelta(minutes = 15)

timedeltas是专门设计用来允许您减去datetimes 或增加s (差)。


7
from datetime import timedelta    
datetime.datetime.now() - datetime.timedelta(0, 900)

Actually 900 is in seconds. Which is equal to 15 minutes. `15*60 = 900`

您的导入与代码不匹配;您导入timedelta但随后使用datetime属性。导入模块,或添加类型。
马丁·彼得斯

7

如果您想查看更多示例,那么在几分钟,几年和几小时内,我提供了两种方法:

import datetime
print(datetime.datetime.now())
print(datetime.datetime.now() - datetime.timedelta(minutes = 15))
print(datetime.datetime.now() + datetime.timedelta(minutes = -15))
print(datetime.timedelta(hours = 5))
print(datetime.datetime.now() + datetime.timedelta(days = 3))
print(datetime.datetime.now() + datetime.timedelta(days = -9))
print(datetime.datetime.now() - datetime.timedelta(days = 9))

我得到以下结果:

2016-06-03 16:04:03.706615
2016-06-03 15:49:03.706622
2016-06-03 15:49:03.706642
5:00:00
2016-06-06 16:04:03.706665
2016-05-25 16:04:03.706676
2016-05-25 16:04:03.706687
2016-06-03
16:04:03.706716


4

datetime.datetime.now() - datetime.timedelta(0, 15 * 60)

timedelta是“时间的变化”。以天为第一个参数,以秒为第二个参数。15 * 60秒是15分钟。


1

如果您使用的是time.time()时间戳记作为输出

只需使用

CONSTANT_SECONDS = 900 # time  in seconds (900 seconds = 15 min)

current_time = int(time.time())
time_before_15_min = current_time - CONSTANT_SECONDS

您可以根据所需时间更改900秒。


1

只有以下Python 3.7中的代码对我有用

from datetime import datetime,timedelta    
print(datetime.now()-timedelta(seconds=900))

这与以前的答案没有什么不同。
马丁·彼得斯
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.