Python: converta o texto livre até o momento
Pergunta
Supondo que o texto seja digitado ao mesmo tempo no mesmo fuso horário (israelense), as seguintes linhas de texto gratuitas são equivalentes:
Wed Sep 9 16:26:57 IDT 2009
2009-09-09 16:26:57
16:26:57
September 9th, 16:26:57
Existe um módulo Python que converteria todas essas datas de texto em um (idêntico) datetime.datetime
instância?
Eu gostaria de usá-lo em uma ferramenta de linha de comando que receberia uma data e hora do FreeText como um argumento e retornariam a data e hora equivalentes em diferentes fusos horários, por exemplo:
~$wdate 16:00 Israel
Israel: 16:00
San Francisco: 06:00
UTC: 13:00
ou:
~$wdate 18:00 SanFran
San Francisco 18:00:22
Israel: 01:00:22 (Day after)
UTC: 22:00:22
Alguma ideia?
Obrigado,
Udi
Solução
ParsedateTime Parece ser um módulo muito capaz para esta tarefa específica.
Outras dicas
o Python-Dateutil Pacote parece que seria útil. Seus exemplos usam apenas o timestamps simples de HH: mm com um identificador da cidade (magicamente reduzido), mas parece capaz de lidar com formatos mais complicados como os mais cedo na pergunta também.
Você poderia time.strptime
Assim :
time.strptime("2009-09-09 16:26:57", "%Y-%m-%d %H:%M:%S")
Ele retornará um valor struct_time (mais informações na página do documento python).