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
任何想法???
答案 0 :(得分:4)
调用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))