【发布时间】:2011-05-27 15:49:48
【问题描述】:
如何生成具有这样日期的数组:
从 2010.12.01 00:00:00 到 2010.12.12.30 23.59.59 的 javascript 毫秒格式的时间戳 步骤 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', ...]
【问题讨论】:
如何生成具有这样日期的数组:
从 2010.12.01 00:00:00 到 2010.12.12.30 23.59.59 的 javascript 毫秒格式的时间戳 步骤 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', ...]
【问题讨论】:
我只是觉得值得一提的是pandas 也有这个功能。根据您正在处理的具体情况,pandas 可能是一个值得投入时间的工具。
import pandas as pd
times = pd.date_range('2012-10-01', periods=289, freq='5min')
这将返回一个熊猫时间序列索引。可以将其转换为 numpy 数组。
np.array(times)
【讨论】:
嗯,显然你从开始时间开始,循环直到你到达结束时间并在中间增加。
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
相当琐碎。
【讨论】:
'%Y.%m.%d ...' 严格匹配问题。
这是我的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)]
【讨论】: