You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

函数定义行出现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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.25 04:18:32