15

とりわけ日付情報を含むページをスクレイピングしています。warrant_issuedだから私は含むという名前の変数を持っていますu'11/5/2003'- これを機械可読の日付として保存したいと思います。PHP には、素晴らしく機能する便利なstrtotime機能があります。datetimestrptimeが役立つことを期待していましたが、私のバージョンの では利用できないようですdatetime-これで私のタブのすべてが完了しましたdatetime.

In [231]: datetime.
datetime.MAXYEAR           datetime.__hash__          datetime.__sizeof__
datetime.MINYEAR           datetime.__init__          datetime.__str__
datetime.__class__         datetime.__name__          datetime.__subclasshook__
datetime.__delattr__       datetime.__new__           datetime.date
datetime.__dict__          datetime.__package__       datetime.datetime
datetime.__doc__           datetime.__reduce__        datetime.datetime_CAPI
datetime.__file__          datetime.__reduce_ex__     datetime.time
datetime.__format__        datetime.__repr__          datetime.timedelta
datetime.__getattribute__  datetime.__setattr__       datetime.tzinfo

私はiPython 2.7.2+を使用しています

ここで間違ったツリーを吠えていますか? u'11/5/2003'デートに変える最良の方法は何ですか?

4

4 に答える 4

11

strptime()間違いなく正しいアプローチです。これはクラスのクラスメソッドですdatetime紛らわしいことにdatetimeモジュールの一部です)。

つまり、datetime.datetime.strptime()あなたが探しているものです(datetime.strptime().

于 2012-11-25T00:05:18.550 に答える
6

これを試して:

で使用する場合は、こちらdatetime moduleのドキュメントをご覧ください

>>>import datetime
>>>a = u'11/5/2003'
>>>time1 = datetime.datetime.strptime(a, "%m/%d/%Y")
>>>print time1
datetime.datetime(2003, 11, 5, 0, 0)

ipython

In [1]: import datetime

In [2]: a = u'11/5/2003'

In [3]: time1 = datetime.datetime.strptime(a, "%m/%d/%Y")

In [4]: print time1
2003-11-05 00:00:00

こちらtime moduleのドキュメントで使用してください

>>>import time
>>>a = u'11/5/2003'
>>>time1 = time.strptime(a, "%m/%d/%Y")
>>>print time1
time.struct_time(tm_year=2003, tm_mon=11, tm_mday=5, tm_hour=0, tm_min=0, tm_sec=0, tm_wday=2, tm_yday=309, tm_isdst=-1)
于 2012-11-25T00:10:48.553 に答える
4

@David Cain からのコメント返信に感謝します。

dateutil ライブラリは、日時文字列を解析できます (形式を推測します)。ただし、「11/5/2003」は明確な形式ではないことに注意してください (MM/DD または DD/MM はロケールによって異なります)。この場合、dateutil は注意して使用する必要があります。– デビッド・ケイン

したがって、別の良い方法は、dateutil ライブラリを使用することです。

>>> from dateutil.parser import parse
>>> dt = parse('2016/12/05 05:18 pm')
>>> dt
datetime.datetime(2016, 12, 5, 17, 18)
>>> dt.timestamp()
1480929480.0

>>> parse('16/11/12')
>>> datetime.datetime(2012, 11, 16, 0, 0)
于 2016-06-26T06:23:56.407 に答える