多くのコードがあります。あなたは簡素化や採用、それを、私はそれが役立つはずだと思うことができます。
# encoding: utf-8
import datetime
months = {
u'Januar': '1',
u'Februar': '2',
u'März': '3',
u'April': '4',
u'Mai': '5',
u'Juni': '6',
u'Juli': '7',
u'August': '8',
u'September': '9',
u'Oktober': '10',
u'November': '11',
u'Dezember': '12'
}
def str2date(str_date, date_format='%d.%m.%Y', err_value=None, do_raise=False):
u"""
Convert string with date to datetime instance
"""
if isinstance(str_date, datetime.date):
result = str_date
else:
datetime_templates = (
(date_format, 255),
('%d.%m.%Y', 10),
('%Y-%m-%dT%H:%M:%S', 19),
('%Y-%m-%d %H:%M:%S', 19),
('%d.%m.%Y %H:%M:%S', 19),
('%Y-%m-%dT%H:%M', 16),
('%Y-%m-%d %H:%M', 16),
('%d.%m.%Y %H:%M', 16),
('%Y-%m-%d', 10),
('%H:%M:%S', 8),
('%H:%M', 5),
)
for tmpl, baund in datetime_templates:
try:
result_date = datetime.datetime.strptime(str_date[:baund], tmpl).date()
except (ValueError, TypeError) as err:
raise err
else:
result = result_date
break
else:
if do_raise:
raise ValueError
else:
result = err_value
return result
scrapped = "[u'Mitglied seit M\xe4rz 2016']"
encoded = unicode(scrapped.replace("[u'", '').replace("']", ''), 'unicode-escape')
splitted = encoded.split()
replaced = [months[i] if i in months else i for i in splitted]
str_date = u'.'.join(['1', replaced[2], replaced[3]])
result_date = str2date(str_date)
print result_date
print isinstance(result_date, datetime.date)
おかげで、あなたは私をたくさん助けました。 – Severin