在Python中迭代datetime.now

时间:2019-01-07 05:37:02

标签: python python-3.x datetime

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

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循环

因为我现在要询问时间,所以不能使用范围解决方案。像示例here

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

2 个答案:

答案 0 :(得分:2)

从您发布的问题来看,尚不清楚您的预期输出是什么,但是我想您想要的是获取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

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

答案 1 :(得分:1)

import datetime

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

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

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