将日期时间字符串转换为日期
我有一个这样的日期时间字符串:
post["date"] = "2007-07-18 10:03:19"
我想从中提取出“2007-07-18”这个日期。我看到有人提到过 strptime
这个东西,但我不太确定怎么用。请问我该如何从这个字符串中提取出日期呢?
7 个回答
2
这可能不是你想要的答案,但你可以直接把这个字符串分开:
post["date"].split()[0]
这样做会得到 '2007-07-18'
8
在你的情况下,直接使用 split 就可以了:
>>> d1="2007-07-18 10:03:19"
>>> d1.split()[0]
'2007-07-18'
>>>
(这是用空格分割后的第一部分)
如果你坚持要用 strptime
,那么格式是 "%Y-%m-%d %H:%M:%S"
:
>>> 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'
>>>
59
另外两个回答都不错,但如果你想用日期做其他事情,可以使用 datetime
模块:
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')
现在用这个可能有点复杂,但以后会很有用。你可以在这里查看所有的格式说明符。