方法在python中生成日期时间数组

2024-05-14 03:43:57 发布

您现在位置:Python中文网/ 问答频道 /正文

我试图想出一个方法来生成一组时间戳,每小时15分钟,上个月每天8小时。我的方法是自上而下的,首先生成日期,然后使用这些候选对象为每天生成8个子时间戳,最后为每小时生成4个孙子时间戳。在

collection = []
numdays = 10
numHours = 4
numMinutes = 5

base = datetime.datetime.today()
datelist = [base - datetime.timedelta(days=x) for x in range(0, numdays)]
hourList = [date - datetime.timedelta(hours=x) for date in datelist]
minuteList = [hour - datetime.timedelta(minutes=numMinutes) for hour in hourList]

有没有更优雅的亚结构?在


Tags: 对象方法inforbasedatetimedate时间
2条回答

要生成具有固定增量的日期时间列表,请执行以下操作(例如,生成长度为8*4、间隔为15分钟的列表,它解决了部分问题):

`

from datetime import datetime, timedelta

first = datetime(2016, 8, 1, 8, 0, 0)
delta = timedelta(minutes = 15)
dates = (first + delta * x for x in range(8 * 4))

`

dates是一个生成器对象。要打印日期,请使用print(list(dates))

这样的怎么样:

first = datetime(2016, 8, 1, 8, 0, 0)
dates = [first]
for days in range(1, 31): # How many days.
  for _ in range(8 * 4): # 8 hours, 4x 15 min intervals per hour
    dates.append(dates[-1] + timedelta(minutes = 15))
  dates.append(dates[0] + timedelta(days = days))

相关问题 更多 >