我想解析一个我事先知道的可以多种格式出现的日期。如果我无法解析,我返回 nil。在 ruby 中,我喜欢这样:
DATE_FORMATS = ['%m/%d/%Y %I:%M:%S %p', '%Y/%m/%d %H:%M:%S', '%d/%m/%Y %H:%M', '%m/%d/%Y', '%Y/%m/%d']
def parse_or_nil(date_str)
parsed_date = nil
DATE_FORMATS.each do |f|
parsed_date ||= DateTime.strptime(date_str, f) rescue nil
end
parsed_date
end
这很简洁并且有效。我怎样才能在 Python 中做同样的事情?
最佳答案
我会尝试 dateutil .它可以识别大多数格式:
from dateutil import parser
parser.parse(string)
如果您最终按照@RocketDonkey 的建议使用 datetime.strptime:
from datetime import datetime
def func(s,flist):
for f in flist:
try:
return datetime.strptime(s,f)
except ValueError:
pass
关于python - 解析python中可以有多种格式的日期,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14245029/