循环使用ISODate的“月”问题

时间:2013-10-31 14:58:53

标签: python mongodb-query isodate

我需要制作一个循环,回顾过去7天的给定计算。我目前的循环结构如下,但是在上个月的日子里我遇到了问题。

cmm = datetime.datetime.now().strftime("%m")#current month
cdd = datetime.datetime.now().strftime("%d") #current date
cyyyy = datetime.datetime.now().strftime("20%y") #current year
refdate = cyyyy + '-' + cmm + '-' + cdd + 'T'

D7 = [1,2,3,4,5,6,7]
for i in D7:

date = cyyyy + '-' + cmm + '-' + str(int(cdd) - i) + 'T'
print(date, "  ", "NUU", " NUU1", " NUU2", " NUU3", " NUU4", " NUU5", " NUU6")

输出:

2013-10-3T    NUU  NUU1  NUU2  NUU3  NUU4  NUU5  NUU6
2013-10-2T    NUU  NUU1  NUU2  NUU3  NUU4  NUU5  NUU6
2013-10-1T    NUU  NUU1  NUU2  NUU3  NUU4  NUU5  NUU6
2013-10-0T    NUU  NUU1  NUU2  NUU3  NUU4  NUU5  NUU6
2013-10--1T    NUU  NUU1  NUU2  NUU3  NUU4  NUU5  NUU6
2013-10--2T    NUU  NUU1  NUU2  NUU3  NUU4  NUU5  NUU6
2013-10--3T    NUU  NUU1  NUU2  NUU3  NUU4  NUU5  NUU6

此处列出的最后4个日期显然不够。

在一些PyMongo查询中使用正则表达式计算NUU [0-6]的值时使用的日期。

在不浪费大量时间的情况下,不确定在哪个方向跑。 tuple_time?

1 个答案:

答案 0 :(得分:1)

为什么不从......开始呢?

from datetime import datetime, timedelta

# initial_date = datetime.today()
initial_date = datetime(2000, 3, 2)
interval = timedelta(days = 6)
increment = timedelta(days = 1)

i = initial_date - interval
while i <= initial_date:
    print(i)
    i += increment

...并根据需要格式化每个日期?