datetime from string in Python, best-guessing string format
从字符串中获取日期时间的函数
使用dateutil库。
我已经在使用dateutil作为处理时区不可或缺的lib(请参见将UTC日期时间字符串转换为本地日期时间,以及如何在python中将本地时间转换为UTC?)
我刚刚意识到它有日期解析支持:
1 2 | import dateutil.parser yourdate = dateutil.parser.parse(datestring) |
(另请参见如何将ISO 8601日期时间字符串转换为python日期时间对象?)
如果只检查日期,就可以使用一个简单的函数。
1 2 3 4 5 6 7 8 9 10 11 | def get_date(s_date): date_patterns = ["%d-%m-%Y","%Y-%m-%d"] for pattern in date_patterns: try: return datetime.datetime.strptime(s_date, pattern).date() except: pass print"Date is not in expected format: %s" %(s_date) sys.exit(0) |
号
在我还是一个Python人之前,我是一个Perl人。有一件事我一直很怀念,但没有看到任何接近它的东西,那就是约会:狂躁。这个模块可以从一点点的小字节中提取一个好的时间戳。我几乎怀疑是作者和魔鬼达成了协议。
我在python中遇到了一些可以刺穿它的东西:
- 正常日期
- MX日期时间
- Roundup的日期模块有一些风扇
如果你找到更好的,我很想听听。
您可以使用日期查找工具,它将检测所有类型的自然日期样式。
1 2 3 4 | string_value =" created 01/15/2005 by ACME inc.and associates.January 4th,2017 at 8pm" matches = datefinder.find_dates(string_value) for match in matches: print("match found",match) |
产量
1 2 | match found 2005-01-15 00:00:00 match found 2017-01-04 20:00:00 |
。