start_time = '2017-01-01 00:00:00'
end_time = '2017-07-01 00:00:00'
start_time_st = int(time.mktime(time.strptime(start_time, '%Y-%m-%d %H:%M:%S')))
end_time_st = int(time.mktime(time.strptime(end_time, '%Y-%m-%d %H:%M:%S')))
for stmp in xrange(start_time_st, end_time_st, 60):
......
需要生成一个 list,
if len(list)>=100 or stmp 是最后一个时:
do.....
这个场景下,怎么判断 stmp 已经是最后一个了。求助大神们。
1
csdreamdong OP python2.7
|
2
sleshep 2017-07-17 16:13:12 +08:00
用 arrow 库啊,你这么折腾时间不难受啊
|
3
sleshep 2017-07-17 16:14:33 +08:00
import arrow
arrow.get(2017).span('month')[:7] 2 行搞定的事情 |
4
csdreamdong OP @sleshep 我想指定一段时间,每隔 60 秒一个时间戳。要这段时间内的所有时间戳。
|
5
sleshep 2017-07-17 16:20:47 +08:00
>>> from datetime import datetime
>>> import arrow >>> start = datetime(2013, 5, 5, 12, 30) >>> end = datetime(2013, 5, 5, 17, 15) >>> for r in arrow.Arrow.range('hour', start, end): ... print repr(r) ... <Arrow [2013-05-05T12:30:00+00:00]> <Arrow [2013-05-05T13:30:00+00:00]> <Arrow [2013-05-05T14:30:00+00:00]> <Arrow [2013-05-05T15:30:00+00:00]> <Arrow [2013-05-05T16:30:00+00:00]> |
6
csdreamdong OP @sleshep 但怎么判断是不是最后个呢?
|
7
rogerchen 2017-07-17 16:58:34 +08:00
for i, stmp in enumerate(xrange(...))
|
8
KingMaster 2017-07-17 17:13:51 +08:00
if stmp + 60 >= end_time_st:
... |
9
KgM4gLtF0shViDH3 2017-07-17 17:27:46 +08:00
@rogerchen 这还不如直接用 range。。。
|
10
crab 2017-07-17 17:46:44 +08:00
用 unix 时间,再转回去。
|
11
zjuhwc 2017-07-18 08:46:20 +08:00 via iPhone
把是不是最后一个的判断挪到循环外面去?
因为 for 循环结束后,stmp 就停在最后一个值上了,循环外做一次 do 操作 |