from datetime import datetime
import dateutil.parser
date = '0001-01-01T00:00:00+02:00'
parsed_date = dateutil.parser.parse(date)
year = parsed_date.year
print(year)
>>> 2001
期望的输出:0001
任何想法???
最佳答案
调用dateutil.parser.parse
时,还可以指定参数“parseinfo”(see here)。这个对象定义了解析日期时的某些行为,包括如何处理日期。它具有“convertyear”方法。
通过重写该方法,可以更改默认行为(即documented here)来实现您要尝试的操作。这是使用此对象的代码的稍有更改的版本:
from datetime import datetime
import dateutil.parser
class NoYearHandlingParserInfo(dateutil.parser.parserinfo):
def convertyear(self, year):
return int(year)
date = '0001-01-01T00:00:00+02:00'
parsed_date = dateutil.parser.parse(date, parserinfo=NoYearHandlingParserInfo())
year = parsed_date.year
print(year)
给出正确的输出“1”。如果您确实需要文字
0001
,则可以像这样填充该整数:print('{:04d}'.format(year))
关于python - dateutil.parser.parse正在将 '0001'解析为2001。我如何解决此问题以仅将其读取为0001?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/30894736/