Если вы еще не сделали этого, посмотрите на parse
функции в dateutils.parser
для разбора строки представления дат ...
>>> from dateutil.parser import parse
>>> dt = parse("Thu 21st Aug '14, 4:58am")
>>> dt
datetime.datetime(2014, 8, 21, 4, 58)
..., а затем преобразовать datetime
объект в метку времени, вы можете сделать последующее ING:
>>> import time
>>> import datetime
>>> time.mktime(dt.timetuple())
1408593480.0
В стороне замечания, parse
полезная функция, которая может распознавать огромный диапазон различных форматов даты. Однако иногда слишком полезно и видит даты, где, возможно, дата не предназначена:
>>> parse("14, m 23")
datetime.datetime(2014, 8, 23, 0, 14)
Если вы хотите, чтобы разобрать такие выражения, как «Вчера, 7:22», вы могли бы сделать одну из двух вещей:
Заменить «вчера», «вчера», «yday» и другие вариации с «25/08/2014» (или другой соответствующей датой), а затем использовать parse
на новой строке.
Используйте другую библиотеку для разбора строки. parsedatetime это один вариант ...
Вот parsedatetime в действии на вашем примере:
>>> import parsedatetime.parsedatetime as pdt
>>> p = pdt.Calendar()
>>> d = p.parse("Yesterday, 7:22am")
>>> d
((2014, 8, 25, 7, 22, 0, 0, 237, -1), 3)
Чтобы включить эту дату представления d
в datetime
объекта, вы можете распаковать кортеж так:
>>> dt = datetime.datetime(*d[0][:7])
>>> dt
datetime.datetime(2014, 8, 25, 7, 22)
Теперь dt
можно легко преобразовать в метку времени, как описано выше.
и создать метку времени? –
Отредактировано, спасибо. Дайте мне знать, нужна ли еще работа ... –
parse util can not проанализируйте этот формат: «Вчера, 7:22 утра», что я могу сделать, чтобы разобрать этот формат на timestamp? – krukita