3

次の例のような日付と数字を含む一連のデータ ファイルを読み込んでいます。

Jan-61  25.3
Feb-61  23.5
Mar-61  37.9
Apr-61  40.6

私は日付を読んでいます

datetime.datetime.strptime(dateVariable, "%b-%y")

2 桁の年があると問題が発生します。70 未満の数字 (つまりエポック年) は 1900 年代ではなく 2000 年代であると解釈されるからです。

すべてのファイルを編集して日付形式を変更するのは非常に困難です。2 桁の年を別の方法で解釈するように datetime に指示する方法はありますか?

4

2 に答える 2

3

どこかに太い線を引かなければなりません。たとえば、将来の日付を受け入れない場合 (つまり、'Jun-12' は 2012 年ですが、'Aug-12' は 1912 年です):

dt = datetime.datetime.strptime(dateVariable, "%b-%y")
if dt > datetime.now():
    dt = dt - datetime.timedelta(years=100)
于 2012-07-13T06:17:45.267 に答える
0

Years は datetime.timedelta の有効なパラメータではないため (少なくとも Python 2.7 ではそうではありません)、実際には以下を使用する必要があります。

dt = datetime.datetime(dt.years - 100, dt.month, dt.day, dt.hours, dt.minutes, dt.seconds)
于 2013-01-09T12:06:38.303 に答える