在Python中,如何从包含其他单词的字符串中解析日期时间

时间:2017-02-23 12:07:41

标签: python parsing datetime python-dateutil

我熟悉dateutil.parser,它允许人们将表示时间的字符串解析为datetime个对象。但是,我想要做的是搜索'对于这样一个'时间字符串'在表示时间间隔的较大字符串中。例如:

from datetime import timedelta
import dateutil.parser
import parse

start = dateutil.parser.parse("5 Nov 2016 15:00")
end = start + timedelta(hours=1)

string = "from {start} till {end}".format(start=start, end=end)

start_pattern = "from {:tg}"
result = parse.search(start_pattern, string)

我希望将startend恢复为datetime个对象,因为它们遵循"来自"和"直到"分别。

此处我尝试使用parse模块,但格式说明符:tg(针对全球时间语法)似乎不适用于datetime' s默认字符串表示,其他可用字符串表示与string中的字符串表示相似。

在此示例中,解析startend的简单而优雅的方法是什么?

2 个答案:

答案 0 :(得分:2)

在这种情况下,re包可以帮到你;只需为要匹配的字符串创建正则表达式,并使用它们来提取日期部分。

答案 1 :(得分:1)

我找到了一种使用正则表达式的方法:

create procedure p1()
begin
declare k int;
DECLARE exit handler for sqlexception
 BEGIN
  SET k = 0;
  ROLLBACK;
 END;

set autocommit = off;
START TRANSACTION;
update sampletable2 set cnt = cnt + 5; 
insert into sampletable1 values ('5s');   
 IF k < 1 
    THEN
      ROLLBACK;
    ELSE
      COMMIT;
    END IF;
end;
//