1

time.strptimeで処理する日付を表す文字列を%d%m%Yのような形式で受け取る必要がありますが、日番号が10未満の場合、その日は1桁で表示されます。 %d形式で必要な2桁ではなく、数値。

つまり、

'8052012'

としてtransalatedされます

day 08, month 05, year 2012

しかし、文字列で

'2052012'

strptimeは私に

day 20, month 5, year 2012

それ以外の

day 2, month 5, year 2012

このデフォルトの動作を回避する方法はありますか?(おそらく、%mを2桁の数値にする必要があるため、strptimeには、その日に残っているものを使用するオプションがありませんか?)

編集:入力文字列では、1つの数字で表すことができる場合でも、月は常に2桁であることに注意してください。ここでの問題は、大きさに応じて1桁または2桁で表される可能性のある日だけです...

4

3 に答える 3

6

time.strptimeフォーマット文字列から知ることができるよりも、このデータについて詳しく知っています。

'0'日付文字列の長さが7の場合は、先頭に追加してあいまいさを取り除きます。

于 2012-05-09T18:52:26.927 に答える
1

私にとっては、その文字列の印刷に問題があるように見えます。通常、%dは2桁を返します(http://docs.python.org/library/time.html#time.strftimeを参照)。たぶん、そのような文字列をlongまたはint値に変換して、それを出力しますか?そのような値を本当に解析する必要がある場合は、そのようなエントリの長さを確認する必要があると想定します。

于 2012-05-09T18:53:25.133 に答える
0

あなたは最後から数えてみることができます:

dd='2052012'
print 'Day', dd[:-6], 'Month:',dd[-6:-4], 'Year: ', dd[-4:]
于 2012-05-09T18:59:23.780 に答える