datetime以2位数格式获取小时

时间:2016-06-17 16:29:38

标签: python date datetime

当我得到一小时的时间时,它会像这样在24小时时间内打印出来;

time1 = datetime.datetime.strptime("08/Jan/2012:08:00:00", "%d/%b/%Y:%H:%M:%S")
print 'hour is ', time1.hour

> time is  8

我试图让它显示08,而不是8.对于那些两位数的小时它很好,但只要它达到一个数字我就试图在它前面得到0。

我可以做'time1.time',然后转换为字符串,然后将其拆分,然后将小时转换回日期时间对象,但是这很长,并且想知道是否有更简单的解决方案?

2 个答案:

答案 0 :(得分:4)

使用.strftime()将其转储回字符串:

>>> import datetime
>>> dt = datetime.datetime.strptime("08/Jan/2012:08:00:00", "%d/%b/%Y:%H:%M:%S")
>>> dt.hour
8
>>> dt.strftime("%H")
'08'

答案 1 :(得分:0)

int

不能为前导零
>>> type(time1.hour)
<class 'int'>

这就是为什么你别无选择,只能先将time1.hour转换为str,然后再操作格式。

您可以使用@alecxe解决方案(看起来优雅而正确)或只是使用类似的东西:

>>> "{0:0>2}".format(time1.hour)