Convert a string with date and time to a date
本问题已经有最佳答案,请猛点这里访问。
我有这个日期时间字符串:
1 | post["date"] ="2007-07-18 10:03:19" |
我只想提取"2007-07-18"作为日期。我看到过一些关于
其他两个答案是可以的,但是如果您真的想知道其他事情的日期,您可以使用
1 2 3 | from datetime import datetime d = datetime.strptime('2007-07-18 10:03:19', '%Y-%m-%d %H:%M:%S') day_string = d.strftime('%Y-%m-%d') |
。
现在可能是杀伤力太大了,但会有用的。您可以在这里看到所有的格式说明符。
在您的情况下,只需使用拆分:
1 2 3 4 | >>> d1="2007-07-18 10:03:19" >>> d1.split()[0] '2007-07-18' >>> |
(用空格拆分后的第一部分)
如果您坚持使用
1 2 3 4 5 6 | >>> import time >>> time.strptime(d1,"%Y-%m-%d %H:%M:%S") time.struct_time(tm_year=2007, tm_mon=7, tm_mday=18, tm_hour=10, tm_min=3, tm_sec=19, tm_wday=2, tm_yday=199, tm_isdst=-1) >>> time.strftime("%Y-%m-%d", _) '2007-07-18' >>> |
号
您可以使用https://pypi.python.org/pypi/python-dateutil,它可以支持任何日期时间格式,例如:
1 2 3 4 5 6 7 8 9 10 11 12 13 | >>> from dateutil.parser import parse >>> d1="2007-07-18 10:03:19" >>> date_obj = parse(d1) >>> date_obj datetime.datetime(2007, 7, 18, 10, 3, 19) >>> date_obj.strftime("%Y-%m-%d") '2007-07-18' >>> d2 ="18-07-2007 10:03:19" >>> d = parse(d2) >>> d datetime.datetime(2007, 7, 18, 10, 3, 19) >>> d.strftime("%Y-%m-%d") '2007-07-18' |
。
可能不是您要找的,但您可以拆分字符串:
1 | post["date"].split()[0] |
会给你一个
您可以使用parsedatetime模块。
1 2 3 4 | >>> from parsedatetime.parsedatetime import Calendar >>> c = Calendar() >>> c.parse("2007-07-18 10:03:19") ((2008, 11, 19, 10, 3, 19, 2, 324, 0), 2) |
。
您可以使用egenix的
1 2 3 4 | import mx date_object = mx.DateTime.Parser.DateTimeFromString('2007-07-18 10:03:19') print"%s-%s-%s" % (date_object.year, date_object.month, date_object.day) |
将输出:
1 2 3 | import dateutil.parser a ="2007-07-18 10:03:19" d = dateutil.parser.parse(b).date() |
你的输出将是这样的**
datetime.date(2007, 07, 18)
号
**