2009-09-09 2 views
4

Предполагая, что текст набирается в то же время в том же (Израиля) часовой пояс, следующие бесплатные текстовые строки эквивалентны:Python: преобразовать свободный текст на сегодняшний день

Wed Sep 9 16:26:57 IDT 2009 
2009-09-09 16:26:57 
16:26:57 
September 9th, 16:26:57 

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

Я хотел бы использовать его в качестве инструмента командной строки, что бы получить дату FREETEXT и время в качестве аргумента и возвращает эквивалентную дату и время в разных часовых поясах, например:

~$wdate 16:00 Israel 
Israel:  16:00 
San Francisco: 06:00 
UTC:   13:00 

или :

~$wdate 18:00 SanFran 
San Francisco 18:00:22 
Israel:  01:00:22 (Day after) 
UTC:   22:00:22 

Любые идеи?

Спасибо,

Уди

+1

см. Http://stackoverflow.com/questions/1258712/fuzzy-timestamp-parsing-with-python/ –

ответ

3

parsedatetime, кажется, очень способный модуль для этой конкретной задачи.

6

Пакет python-dateutil звучит, как это было бы полезно. В ваших примерах используются только простые временные метки HH: MM с (магически укороченным) идентификатором города, но он, похоже, способен обрабатывать более сложные форматы, подобные тем, которые были ранее в вопросе.

+0

Кажется замечательным, проверяя его. –

+1

Да, dateutil.pareser.parse() - соответствующий метод, о котором идет речь. –

0

Вы могли бы вы time.strptime

Как это:

time.strptime("2009-09-09 16:26:57", "%Y-%m-%d %H:%M:%S") 

Он возвращает значение struct_time (подробнее на странице док питона).

+0

Да, но я ищу модуль, который будет выполнять синтаксический анализ для меня - я думаю, эта работа была выполнена раньше. –

Смежные вопросы