函数定义行出现Syntax Error,求日期格式转换代码修正方案
解决日期转换函数的语法错误问题
嘿,我一眼就看到你代码里的几个小问题啦,咱们一个个来修正:
首先,先把你原代码里的问题列出来:
import datetime跟函数定义写在同一行且没有缩进,这不符合Python语法规范,要么把导入语句放在函数外面,要么缩进后放在函数内部第一行。strptime和strftime的格式字符串(比如%d/%m/%Y)没有用引号包裹,这些参数必须是字符串类型,得加上单引号或者双引号才行。- 调用
strptime时,你用了datetime.strptime,但实际上这个方法是datetime模块里datetime类的方法,正确调用方式是datetime.datetime.strptime,或者你可以换导入方式from datetime import datetime来简化调用。
接下来是修正后的完整代码,我给你写两种常见的写法:
写法一:导入整个datetime模块
import datetime def printDate(date): # 把字符串解析为datetime对象 newdate = datetime.datetime.strptime(date, '%d/%m/%Y') # 格式化为目标样式 formatted_date = newdate.strftime('%b %d, %Y') return formatted_date # 测试一下 print(printDate("13/06/2017")) # 输出: Jun 13, 2017
写法二:直接导入datetime类
from datetime import datetime def printDate(date): newdate = datetime.strptime(date, '%d/%m/%Y') formatted_date = newdate.strftime('%b %d, %Y') return formatted_date # 测试 print(printDate("13/06/2017")) # 输出: Jun 13, 2017
另外注意你描述里提到的目标是June 13, 2007,但原日期是2017,而且%b会输出月份缩写(比如Jun),如果想要完整的月份名称(June),只需要把格式字符串改成'%B %d, %Y'就可以啦:
formatted_date = newdate.strftime('%B %d, %Y') # 输出: June 13, 2017
内容的提问来源于stack exchange,提问作者jesseleung
相关产品推荐
相关产品推荐

