Как мне strtotime в python?

Я выскабливаю страницу, которая включает в себя, среди прочего, информацию о дате. Поэтому у меня есть переменная с именем warrant_issued, которая содержит u'11/5/2003' -- Я хочу сохранить это как машиночитаемую дату. PHP имеет удобный strtotime функция, которая работает сказочно. Я надеялся, что datetime ' s strptime поможет мне, но он, похоже, не доступен в моей версии 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' на свидание?

3 ответов


strptime() - это, безусловно, правильный подход, это просто метод класса для datetime класс (растерянно часть datetime модуль).

то есть datetime.datetime.strptime() - это то, что вы ищете (и не datetime.strptime().


попробуйте это:

для использования с 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)

благодаря комментарию от @David Cain:

библиотека dateutil может анализировать строки datetime (выводя их формат). Однако обратите внимание, что" 11/5/2003 " не является однозначным форматом (MM/DD или DD/MM отличается по локали), поэтому dateutil следует использовать с осторожностью в этом случае. - Дэвид Кейн!--2-->

поэтому альтернативной хорошей практикой является использование библиотеки 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)