首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Python纪元失败,年份为2位

Python纪元失败,年份为2位
EN

Stack Overflow用户
提问于 2012-07-13 14:13:26
回答 2查看 1K关注 0票数 3

我正在读入一组包含日期和数字的数据文件,类似于下面的示例:

代码语言:javascript
复制
Jan-61  25.3
Feb-61  23.5
Mar-61  37.9
Apr-61  40.6

我正在使用以下命令读取日期

代码语言:javascript
复制
datetime.datetime.strptime(dateVariable, "%b-%y")

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

编辑所有文件和更改日期格式将非常困难。有没有办法让datetime以不同的方式解释两位数的年份?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2012-07-13 14:17:45

你必须在某处画出一条粗线。例如,如果您不接受未来日期(即‘’Jun 12‘是2012年,而'Aug-12’是1912年):

代码语言:javascript
复制
dt = datetime.datetime.strptime(dateVariable, "%b-%y")
if dt > datetime.now():
    dt = dt - datetime.timedelta(years=100)
票数 3
EN

Stack Overflow用户

发布于 2013-01-09 20:06:38

对于datetime.timedelta来说,Years不是一个有效的参数(至少在Python2.7中不是),所以您实际上需要使用:

代码语言:javascript
复制
dt = datetime.datetime(dt.years - 100, dt.month, dt.day, dt.hours, dt.minutes, dt.seconds)
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/11465078

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档