Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/287.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python时间模块赢得';1900年以前的一年_Python_Datetime - Fatal编程技术网

Python时间模块赢得';1900年以前的一年

Python时间模块赢得';1900年以前的一年,python,datetime,Python,Datetime,我想把出生日期转换成文本文件,比如说,我有数据 fjsffk 1985-01-30 fkgskgks 1899-02-20 我已尝试使用以下代码,但仍然出现错误: import datetime months = ['January', 'February', 'March', 'April', 'May', 'June', 'July', 'August', 'September', 'October', 'November', 'December'] with ope

我想把出生日期转换成文本文件,比如说,我有数据

fjsffk 1985-01-30
fkgskgks 1899-02-20
我已尝试使用以下代码,但仍然出现错误:

import datetime

months = ['January', 'February', 'March', 'April', 'May', 'June', 'July',
          'August', 'September', 'October', 'November', 'December']
with open('file.txt', 'r') as f:
    for line in f.readlines():
        dob = line.rsplit(None, 1)[-1]  
        dt = datetime.strptime(dob, "%Y-%m-%d")          
        print "{0:} {1:}, {2:}".format(months[dt.month-1], dt.day, dt.year)
任何解决方案请,谢谢

根据python

确切的年份范围是多少 strftime()的工作原理也因时间而异 平台。不分平台,, 1900年之前的年份不能使用

请容忍我-我已经尝试了以下解决方案,对我来说效果很好:

from datetime import datetime

mDt = datetime(1900,01,01)
dt = datetime.strptime('20-02-1899', "%d-%m-%Y")
resultString = datetime(dt.year + (mDt - dt).days/365 + 1, dt.month, dt.day).strftime('%B %d, %Y').replace('1900', str(dt.year))
或者像这样:

monthes = ['January', 'February', 'March', 'April', 'May', 'June', 'July', 'August', 'September', 'October', 'November', 'December']
dt = datetime.strptime('20-02-1890', "%d-%m-%Y")
print "{0:} {1:}, {2:}".format(monthes[dt.month-1], dt.day, dt.year)

以下是之前的一篇文章,可能会给你一些想法:
time
datetime
模块在Python中是两个不同的东西。您的标题提到datetime,但您的代码多次使用datetime,其中一个建议的解决方案使用datetime。也许你想编辑你的问题并澄清一下?请检查这行
dt=datetime.strtime('20-02-1890',%d-%m-%Y')
我在Python 2.6控制台和PyCharm中都试过这段代码,对我来说效果很好。您实际得到了什么错误?属性错误:类型对象'date-time.date\u-time'没有strptimeOk的属性。您使用的python版本是什么?另外请注意,如果您愿意,您可以找到我的skype并直接与我联系。请在您通常可以在skype上自由交谈时告诉我。谢谢!