Python:将自由文本转换为日期

时间:2009-09-09 13:35:46

标签: python time parsing freetext

假设文本在同一个(以色列)时区同时输入,以下自由文本行是等效的:

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

任何想法?

谢谢,

乌迪

3 个答案:

答案 0 :(得分:6)

python-dateutil包听起来很有帮助。您的示例仅使用简单的HH:MM时间戳和(神奇缩短的)城市标识符,但它似乎能够处理更复杂的格式,如问题前面的格式。

答案 1 :(得分:3)

parsedatetime似乎是这项特定任务的一个非常强大的模块。

答案 2 :(得分:0)

你可以time.strptime

像这样:

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

它将返回struct_time值(python doc页面上的更多信息)。