如何从日期时间列表中仅提取时间

时间:2017-10-30 03:04:02

标签: python

这是我的代码,以获取开始时间为上午10点((2017年,10月29日,10日,0日)的日期和时间,然后是第二天上午10点的日期时间。现在,我想仅提取从那时起到第二天上午10:00到上午10点。 所以我的结果应该是

(10:00,11:00,12:00,13:00,14:00,15:00,16:00,17:00,18:00,19:00,20:00,21:00,22:00,23:00,00:00,1:00,2:00,3:00,4:00,5:00,6:00,7:00,8:00,9:00,10:00)

如果有人能在这方面帮助我,我将感激不尽。

import datetime

a=datetime.datetime.combine(datetime.date.today(), datetime.time(10))

x = [a + datetime.timedelta(hours=i) for i in range(24)]

3 个答案:

答案 0 :(得分:1)

datetime类的time()方法返回" time"部分日期/时间。使用它,您可以实现以下目标:

times = [dt.time() for dt in x]

答案 1 :(得分:0)

您可以稍微修改一下:

["{}:00".format((a + datetime.timedelta(hours=i)).hour) for i in range(24)]
                                                   ^

仅从datetime对象中获取hour并按照您希望的方式对其进行格式化。

<强>输出

['10:00', '11:00', '12:00', '13:00', '14:00', '15:00', '16:00', '17:00', '18:00', '19:00', '20:00', '21:00', '22:00', '23:00', '0:00', '1:00', '2:00', '3:00', '4:00', '5:00', '6:00', '7:00', '8:00', '9:00']

答案 2 :(得分:0)

试试这个

today = datetime.datetime.today()
x = [ ( (today + datetime.timedelta(hours=i)).hour ) for i in range(24)]
print(x)

每个今天加上我的小时并获得他们的属性时间