Как мне 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)