简体   繁体   English

在python中有两个日期之间的小时列表

[英]Have a list of hours between two dates in python

I have two times and I want to make a list of all the hours between them using the same format in Python 我有两次,我想使用Python中的相同格式列出两次之间的所有小时数

from= '2016-12-02T11:00:00.000Z'
to= '2017-06-06T07:00:00.000Z'
hours=to-from

so the result will be something like this 2016-12-02T11:00:00.000Z 2016-12-02T12:00:00.000Z 2016-12-02T13:00:00.000Z ..... and so on How can I so this and what kind of plugin should I use? 所以结果将是这样的2016-12-02T11:00:00.000Z 2016-12-02T12:00:00.000Z 2016-12-02T13:00:00.000Z .....等等如何这个以及我应该使用哪种插件?

simpler solution using standard library's datetime package: 使用标准库的datetime包的更简单的解决方案:

from datetime import datetime, timedelta

DATE_TIME_STRING_FORMAT = '%Y-%m-%dT%H:%M:%S.%fZ'

from_date_time = datetime.strptime('2016-12-02T11:00:00.000Z',
                                   DATE_TIME_STRING_FORMAT)
to_date_time = datetime.strptime('2017-06-06T07:00:00.000Z',
                                 DATE_TIME_STRING_FORMAT)

date_times = [from_date_time.strftime(DATE_TIME_STRING_FORMAT)]
date_time = from_date_time
while date_time < to_date_time:
    date_time += timedelta(hours=1)
    date_times.append(date_time.strftime(DATE_TIME_STRING_FORMAT))

will give us 会给我们

>>>date_times
['2016-12-02T11:00:00.000000Z', 
 '2016-12-02T12:00:00.000000Z',
 '2016-12-02T13:00:00.000000Z', 
 '2016-12-02T14:00:00.000000Z',
 '2016-12-02T15:00:00.000000Z', 
 '2016-12-02T16:00:00.000000Z',
 '2016-12-02T17:00:00.000000Z', 
 '2016-12-02T18:00:00.000000Z',
 '2016-12-02T19:00:00.000000Z', 
 '2016-12-02T20:00:00.000000Z',
 ...]

If possible I would recommend using pandas. 如果可能的话,我建议使用熊猫。

import pandas
time_range = pandas.date_range('2016-12-02T11:00:00.000Z', '2017-06-06T07:00:00.000Z', freq='H')

If you need strings then use the following: 如果您需要字符串,请使用以下命令:

timestamps = [str(x) + 'Z' for x in time_range]
# Output
# ['2016-12-02 11:00:00+00:00Z',
#  '2016-12-02 12:00:00+00:00Z',
#  '2016-12-02 13:00:00+00:00Z',
#  '2016-12-02 14:00:00+00:00Z',
#  '2016-12-02 15:00:00+00:00Z',
#  '2016-12-02 16:00:00+00:00Z',
#  ...]

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM