dateutil
からfuzzy
引数は、まさにこの目的のために使用されます。
from dateutil.parser import parse
string = "2014-12-04 04:07:59 <font color='green'> info:</font> One, two, three, four, five."
dt = parse(string, fuzzy=True)
結果は次のとおりです。あなただけの日付をしたい場合は
datetime.datetime(2014, 12, 4, 4, 7, 59)
は、ちょうど日付オブジェクトを返すためにdt.date()
を使用しています。
おそらく日付の一部である可能性のある他の文字列(たとえば、March
など)があると、パーサーに問題が発生することに注意してください。
あなたがfuzzy_with_tokens
を使用し、それはスキップされ、物事を見たい場合:
from dateutil.parser import parse
string = "2014-12-04 04:07:59 <font color='green'> info:</font> One, two, three, four, five."
dt = parse(string, fuzzy=True)
dt, tokens = parse(string, fuzzy_with_tokens=True)
tokens
はに解決:あなたは `datetime.strptime(string.partition(」「別に意味
(' ', " <font color='green'> info:</font> One, two, three, four, five.")
) [0]、 '%Y-%m-%d')) '?そうではありません - あなたは日付の候補が何であるかを選ぶ必要があります(複数のフォーマットがある場合はどうなりますか - 異なるフォーマットでは言及しません)。 –
サードパーティのライブラリ 'dateutil'は、幅広いフォーマットの日付を解析するのに役立ちます。しかし、渡す文字列はまだ日付のように見える必要があります。私はそれが文字列内の日付のように見えるものを探すとは思わないし、それを解析しようとします。 – mgilson
@mgilson nope - まだ文字列に日付だけが含まれていると期待しています... –