1

重複の可能性:
日付を解析し、Python を使用してフォーマットしますか?

私はPythonが初めてです。次の 2 つの文字列があります。

Mon, 29 Oct 2012 13:07:07 GMT
2012-10-29 12:57:08

上記の2つの文字列を次のように解析するPythonで利用可能な日付解析ライブラリがあればいいのにと思います。

2012-10-29 12:57:08

それらを比較できるように。比較は、整数比較のような結果を生成できる必要があることに注意してください。like1は less than2であるため、同じ方法2012-10-29 12:57:08は less than です。2012-10-29 13:57:08

Pythonで簡単にできることはありますか?

前もって感謝します。

4

3 に答える 3

7

dateutilモジュールを使用して、一般的な日付を解析します。

>>> from dateutil.parser import parse
>>> parse('Mon, 29 Oct 2012 13:07:07 GMT')
datetime.datetime(2012, 10, 29, 13, 7, 7, tzinfo=tzutc())
>>> parse('2012-10-29 12:57:08')
datetime.datetime(2012, 10, 29, 12, 57, 8)

datetime.datetimeオブジェクトはさまざまな方法で比較できます。

datetime.datetime.strptime()解析する各日付文字列の正確な形式がわかっている場合は、メソッドを使用してより明示的に解析を行うこともできます。

>>> import datetime
>>> datetime.datetime.strptime('Mon, 29 Oct 2012 13:07:07 GMT', '%a, %d %b %Y %H:%M:%S %Z')
datetime.datetime(2012, 10, 29, 13, 7, 7)

ただし、そのメソッドはタイムゾーンを無視することに注意してください!

于 2012-10-29T18:00:00.133 に答える
2

はい、time.strptimeテキストを日付表現に変換できます。そこから、strftime好きなように印刷することができます。

>>> a = '2012-10-29 12:57:08'
>>> time.strptime(a, '%Y-%m-%d %H:%M:%S')
time.struct_time(tm_year=2012, tm_mon=10, tm_mday=29, tm_hour=12, tm_min=57, tm_sec=8, tm_wday=0, tm_yday=303, tm_isdst=-1)
>>> b = 'Mon, 29 Oct 2012 13:07:07 GMT'
>>> time.strptime(b, '%a, %d %b %Y %H:%M:%S %Z')
time.struct_time(tm_year=2012, tm_mon=10, tm_mday=29, tm_hour=13, tm_min=7, tm_sec=7, tm_wday=0, tm_yday=303, tm_isdst=0)
于 2012-10-29T17:56:22.870 に答える
1

その機能(文字列解析)datetimeを備えたpythonのモジュールは、それを行うことができます。strptime

たとえば、次のように関数を使用できます。

somestring = '2004-03-13T03:00:00Z'
result = datetime.datetime.strptime(somestring, '%Y-%m-%dT%H:%M:%SZ')

ドキュメントはこちら

于 2012-10-29T17:59:34.373 に答える