2016-06-17 20 views
1

時間を取得すると、このように24時間表示で表示されます。datetime 2桁の時間形式を取得する

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

> time is 8 

私はその罰金二桁ある時間の代わりに8の、それは08を表示するために取得しようとしているが、それは一桁になるとすぐに私はでその0を取得しようとしていますそれの正面。

私は潜在的に 'time1.time'を実行してから文字列に変換し、それを分割して時間をdatetimeオブジェクトに変換して戻すことができますが、これはかなり時間がかかり、

答えて

2

だけ.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' 
0

あなたはintゼロをリードしていないことができます。

>>> type(time1.hour) 
<class 'int'> 

あなたは選択の余地がないが、time1.hourstrに最初に変換し、操作する理由ですことフォーマット。

あなたは(エレガントで右思われる)@alecxe溶液で行くか、単にそのようなものを使用することができます。

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

なぜ '>'でしょうか?代わりに '{0:02d}'を使用すると、 '= '形式が暗示され、自由に署名処理が行われます。 [format spec](https://docs.python.org/2/library/string.html#formatspec)を参照してください。 –

関連する問題