将日期时间字符串转换为日期

23 投票
7 回答
64972 浏览
提问于 2025-04-11 20:06

我有一个这样的日期时间字符串:

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')

现在用这个可能有点复杂,但以后会很有用。你可以在这里查看所有的格式说明符。

撰写回答