Python生成日期系列

时间:2010-12-18 19:42:21

标签: python datetime timestamp

如何使用这样的日期生成数组:

从2010.12.01 00:00:00到2010.12.12.30的javascript miliseconds格式的时间戳23.59.59 步骤5分钟。

['2010.12.01 00:00:00', '2010.12.01 00:05:00','2010.12.01 00:10:00','2010.12.01 00:15:00', ...]

3 个答案:

答案 0 :(得分:39)

嗯,很明显,你从开始时间开始,循环直到你到达结束时间并在中间增加。

import datetime

dt = datetime.datetime(2010, 12, 1)
end = datetime.datetime(2010, 12, 30, 23, 59, 59)
step = datetime.timedelta(seconds=5)

result = []

while dt < end:
    result.append(dt.strftime('%Y-%m-%d %H:%M:%S'))
    dt += step

相当微不足道。

答案 1 :(得分:32)

我觉得值得注意的是pandas也有这个功能。根据您正在处理的情况,大熊猫可能是一个值得投入时间的工具。

import pandas as pd 
times = pd.date_range('2012-10-01', periods=289, freq='5min')

这会返回一个pandas timeseries-index。哪个可以转换为numpy数组。

np.array(times)

答案 2 :(得分:1)

这是我对python3的变种,但它很容易转换成python2.6代码:

import datetime as dt

dt1 = dt.datetime(2010, 12, 1)
dt2 = dt.datetime(2010, 12, 12, 23, 59, 59)

time_step = 5 # secoonds
delta = dt2 - dt1

delta_sec = delta.days * 24 * 60 * 60 + delta.seconds

res = [dt1 + dt.timedelta(0, t) for t in range(0, delta_sec, time_step)]