3

我正在读取一组日期和数字类似于以下示例的数据文件:

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

我正在使用日期阅读

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

有两位数的年份会引起问题,因为小于 70 的数字(即纪元年)被解释为 2000 年代而不是 1900 年代。

编辑所有文件并更改日期格式将非常困难。有没有办法告诉 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 回答