当我得到一小时的时间时,它会像这样在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',然后转换为字符串,然后将其拆分,然后将小时转换回日期时间对象,但是这很长,并且想知道是否有更简单的解决方案?
答案 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)