Python datetime.strptime - 将字符串格式的月份转换为数字
Python datetime.strptime - Converting month in String format to Digit
我有一个包含以下格式的日期的字符串:
full_date = "May.02.1982"
我想使用 datetime.strptime() 以所有数字显示日期,例如:“1982-05-02”
这是我尝试过的:
full_date1 = datetime.strptime(full_date, "%Y-%m-%d")
当我尝试打印它时,我得到了像 built-in-67732
这样的垃圾值
我哪里错了? strptime() 方法不接受字符串值吗?
你的格式字符串有误,应该是这样的:
In [65]:
full_date = "May.02.1982"
import datetime as dt
dt.datetime.strptime(full_date, '%b.%d.%Y')
Out[65]:
datetime.datetime(1982, 5, 2, 0, 0)
然后您需要在日期时间对象上调用 strftime
以获得您想要的字符串格式:
In [67]:
dt.datetime.strptime(full_date, '%b.%d.%Y').strftime('%Y-%m-%d')
Out[67]:
'1982-05-02'
strptime
用于从字符串创建日期时间格式,而不是将字符串重新格式化为另一个日期时间字符串。
因此您需要使用 strptime
创建一个日期时间对象,然后调用 strftime
从日期时间对象创建一个字符串。
日期时间格式字符串可以在 docs 以及 strptime
和 strftime
的解释中找到
我有一个包含以下格式的日期的字符串:
full_date = "May.02.1982"
我想使用 datetime.strptime() 以所有数字显示日期,例如:“1982-05-02”
这是我尝试过的:
full_date1 = datetime.strptime(full_date, "%Y-%m-%d")
当我尝试打印它时,我得到了像 built-in-67732
这样的垃圾值
我哪里错了? strptime() 方法不接受字符串值吗?
你的格式字符串有误,应该是这样的:
In [65]:
full_date = "May.02.1982"
import datetime as dt
dt.datetime.strptime(full_date, '%b.%d.%Y')
Out[65]:
datetime.datetime(1982, 5, 2, 0, 0)
然后您需要在日期时间对象上调用 strftime
以获得您想要的字符串格式:
In [67]:
dt.datetime.strptime(full_date, '%b.%d.%Y').strftime('%Y-%m-%d')
Out[67]:
'1982-05-02'
strptime
用于从字符串创建日期时间格式,而不是将字符串重新格式化为另一个日期时间字符串。
因此您需要使用 strptime
创建一个日期时间对象,然后调用 strftime
从日期时间对象创建一个字符串。
日期时间格式字符串可以在 docs 以及 strptime
和 strftime