Python Epoch失败,年份为2位数

时间:2012-07-13 06:13:26

标签: python datetime date epoch

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

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年。

编辑所有文件并更改日期格式非常困难。有没有办法告诉日期时间以不同的方式解释两位数的年份?

2 个答案:

答案 0 :(得分:3)

你必须在某处画粗线。例如,如果您不接受将来的日期(即'Jun-12'是2012,但'Aug-12'是1912):

dt = datetime.datetime.strptime(dateVariable, "%b-%y")
if dt > datetime.now():
    dt = dt - datetime.timedelta(years=100)

答案 1 :(得分:0)

Years不是datetime.timedelta的有效参数(至少在Python 2.7中没有),所以你实际上需要使用:

dt = datetime.datetime(dt.years - 100, dt.month, dt.day, dt.hours, dt.minutes, dt.seconds)