3 回答

TA贡献1841条经验 获得超3个赞
这是实现相同结果的两种替代方法。
方法一:使用 datetime 模块
from datetime import datetime
datetime_object = datetime.strptime('Tue 31 Jan', '%a %d %b')
print(datetime_object) # outputs 1900-01-31 00:00:00
如果您提供了类似的 Year 参数Tue 31 Jan 2018,则此代码将起作用。
from datetime import datetime
datetime_object = datetime.strptime('Tue 31 Jan 2018', '%a %d %b %Y')
print(datetime_object) # outputs 2018-01-31 00:00:00
以这样的格式打印结果日期31/01/2019。您可以使用
print(datetime_object.strftime("%d/%m/%Y")) # outputs 31/01/2018
以下是 datetime 对象可用的所有可能的格式选项。
方法二:使用 dateutil.parser
此方法会自动使用当前年份填充 Year 参数。
from dateutil import parser
string = "Tue 31 Jan"
date = parser.parse(string)
print(date) # outputs 2018-01-31 00:00:00

TA贡献2080条经验 获得超4个赞
转换为datetime对象
如果您想使用该datetime模块,您可以通过执行以下操作来获得年份:
import datetime as dt
d = dt.datetime.strptime('Tue 31 Jan', '%a %d %b').replace(year=dt.datetime.now().year)
这是以您的格式获取日期,但以1900可靠的方式将默认年份替换为当前年份。
这类似于其他答案,但使用内置replace方法而不是连接字符串。
输出
要从新datetime对象获得所需的输出,您可以执行以下操作:
>>> d.strftime('%d/%m/%Y')
'31/01/2018'
添加回答
举报