2009-09-09 36 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 

是否有将转换一个Python模块所有这些文本日期到一个(相同的)datetime.datetime实例?

我想用它在一个命令行工具,它会得到一个自由文本的日期和时间作为参数,并返回不同的时区的等效日期和时间,例如:

~$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/ – 2009-09-09 13:49:27

回答

3

parsedatetime对于这个特定的任务似乎是一个非常有能力的模块。

6

python-dateutil包听起来就像将是有益的。你的例子只使用简单的HH:MM时间戳和一个(神奇缩短的)城市标识符,但它似乎能够处理更复杂的格式,比如问题中的更早些。

+0

看起来不错,检查出来。 – 2009-09-09 13:50:29

+1

是的,dateutil.pareser.parse()是相关的方法。 – 2009-09-09 14:20:04

0

你可以你time.strptime

像这样:

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

它会返回一个值struct_time(Python的文档页面上的详细信息)。

+0

是的,但我正在寻找一个模块来为我解析 - 我猜这个工作已经完成了。 – 2009-09-09 13:53:53