Python datetime.strptime - 将String格式的月份转换为Digit

Kri*_*ran 3 python datetime strptime

我有一个字符串,其中包含此格式的日期: full_date = "May.02.1982"

我想使用datetime.strptime()以所有数字显示日期,如:"1982-05-02"

这是我试过的:

full_date1 = datetime.strptime(full_date, "%Y-%m-%d")
Run Code Online (Sandbox Code Playgroud)

当我尝试打印这个时,我会得到垃圾值,比如built-in-67732 我哪里出错?strptime()方法不接受字符串值吗?

EdC*_*ica 5

你的格式字符串是错误的,它应该是这样的:

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)
Run Code Online (Sandbox Code Playgroud)

然后,您需要调用strftimedatetime对象以获取所需的字符串格式:

In [67]:

dt.datetime.strptime(full_date, '%b.%d.%Y').strftime('%Y-%m-%d')
Out[67]:
'1982-05-02'
Run Code Online (Sandbox Code Playgroud)

strptime 用于从字符串创建日期时间格式,而不是将字符串重新格式化为另一个日期时间字符串.

因此,您需要使用创建日期时间对象strptime,然后调用strftime以从datetime对象创建字符串.

日期时间格式字符串可以在找到的文档以及的解释strptimestrftime

  • 我建议添加一个使用datetime操作的指令列表:https://docs.python.org/2/library/datetime.html#strftime-strptime-behavior (2认同)