これがあなたの例です:
>>> import parsedatetime
>>> cal = parsedatetime.Calendar()
>>> cal.parse('July 1, 2013, midnight')
((2013, 7, 1, 0, 0, 0, 0, 245, 0), 3)
cal.parse()
2 つの項目のタプルを返します。メソッドの docstring で説明されているように、1 つ目は変更されたparsedatetime.Calendar
オブジェクト、2 つ目は整数です。parse
- 0 = まったく解析されない
- 1 = C{date} として解析
- 2 = C{time} として解析
- 3 = C{datetime} として解析
について一言strptime
:
strptime
「真夜中」を理解することはできませんが、次のようなものを使用して、実際の時間に置き換えることができます。
def fix_dt(raw_date):
"""Replace 'midnight', 'noon', etc."""
return raw_date.replace('midnight', '0').replace('noon', '12')
def parse_dt(raw_date):
"""Parse the fuzzy timestamps."""
return datetime.datetime.strptime(fix_dt(raw_date), '%B %d, %Y, %H')
それで:
>>> parse_dt('July 1, 2013, midnight')
datetime.datetime(2013, 7, 1, 0, 0)
strfti.meで再生して、どれが自分のフォーマットに一致するかを確認できます。
この他の質問をチェックしてください。答えは、あなたの例のようなあいまいなタイムスタンプを解析するためにparsedatetimeとpyparsingを使用することを提案しています。この pyparsing wiki pageも確認してください。