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
有没有什么好主意?
谢谢,
Udi
3 个回答
0
你可以使用 time.strptime
这个功能。
用法如下:
time.strptime("2009-09-09 16:26:57", "%Y-%m-%d %H:%M:%S")
它会返回一个叫做 struct_time 的值(更多信息可以查看 Python 的文档页面)。
6
python-dateutil 这个包听起来很有用。你给的例子只用了简单的小时:分钟格式的时间戳,并且用了一种(神奇缩短的)城市标识符,但它似乎也能处理问题中提到的那些更复杂的格式。
3
parsedatetime 这个模块看起来非常适合处理这个特定的任务。