繁体   English   中英

在Python中迭代datetime.now

[英]Iterate through datetime.now in Python

我正在制作一张表,将数学结果预测到将来。 我在每个预测上添加时间戳。 如果

datetime.datetime.now()

2019-01-07 00:31:15.248895

而如果

datetime.datetime.now() + datetime.timedelta(days=14)

2019-01-21 00:31:44.332851

我如何使用此逻辑将其转换为for循环

由于我现在正在询问时间,因此无法使用范围解决方案。 就像这里的例子。

我希望每隔14天会有23个不同的表的结果。

从您发布的问题来看,尚不清楚您的预期输出是多少,但是我想您想要的是获取14天间隔的日期。 您可以简单地将循环的值乘以天:

码:

import datetime

for i in range(23):
    print(datetime.datetime.now() + datetime.timedelta(days=14*i))

输出:

2019-01-07 11:17:14.702215
2019-01-21 11:17:14.702332
2019-02-04 11:17:14.702376
2019-02-18 11:17:14.702412
2019-03-04 11:17:14.702448
2019-03-18 11:17:14.702911
2019-04-01 11:17:14.703155
2019-04-15 11:17:14.703187
2019-04-29 11:17:14.703215
2019-05-13 11:17:14.703230
2019-05-27 11:17:14.703417
2019-06-10 11:17:14.703472
2019-06-24 11:17:14.703500
2019-07-08 11:17:14.703514
2019-07-22 11:17:14.703528
2019-08-05 11:17:14.703542
2019-08-19 11:17:14.703556
2019-09-02 11:17:14.703570
2019-09-16 11:17:14.703584
2019-09-30 11:17:14.703598
2019-10-14 11:17:14.703612
2019-10-28 11:17:14.703626
2019-11-11 11:17:14.703640

如果只需要日期,则可以使用格式。

import datetime

for i in range(23):
    timestamp = datetime.datetime.now() + datetime.timedelta(days=14*i)

但是,由于每次迭代都会重新评估datetime.datetime.now() ,因此您将获得比14天稍大的差异(几毫秒或更长时间,具体取决于for循环的内容datetime.datetime.now() 如果这是一个问题,请执行以下操作:

now = datetime.datetime.now()
for i in range(23):
    timestamp = now + datetime.timedelta(days=14*i)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM