
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 操作 |