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

如何将API返回的数字日期转换为无年份的文本格式?

嘿,这个需求其实挺常见的,我给你分享几个主流编程语言里的最优转换方式,都是简洁又可靠的:

Python 最优方案

Python里直接用标准库的datetime模块就搞定,不用依赖第三方包,步骤清晰又高效:

from datetime import datetime

date_str = '2018-05-06'
# 先把字符串解析成datetime对象
date_obj = datetime.strptime(date_str, '%Y-%m-%d')
# 再格式化成需要的样式:%b是英文月份缩写,%-d是不带前导零的日期(Linux/macOS用%-d,Windows用%#d)
formatted_date = date_obj.strftime('%b %-d')
print(formatted_date)  # 输出: May 6

如果要跨平台兼容(避免系统差异),可以用更通用的方式去掉日期前的零:

formatted_date = f"{date_obj.strftime('%b')} {int(date_obj.strftime('%d'))}"
JavaScript 最优方案

现代JS推荐用Intl.DateTimeFormatAPI,它不仅简洁,还自带本地化支持,非常灵活:

const dateStr = '2018-05-06';
const date = new Date(dateStr);
// 配置参数:month设为'short'取缩写,day设为'numeric'取不带零的日期
const formattedDate = new Intl.DateTimeFormat('en-US', {
  month: 'short',
  day: 'numeric'
}).format(date);
console.log(formattedDate); // 输出: May 6

这个API会自动处理日期的前导零问题,而且如果以后需要切换成其他语言的月份格式,只要把'en-US'改成对应的语言代码就行,比如'fr-FR'会输出'Mai 6'。

PHP 最优方案

PHP用内置的DateTime类也能轻松实现:

$dateStr = '2018-05-06';
$date = DateTime::createFromFormat('Y-m-d', $dateStr);
// 'M'是月份缩写,'j'是不带前导零的日期
$formattedDate = $date->format('M j');
echo $formattedDate; // 输出: May 6

这些方案都是利用各语言的标准库能力,不需要额外安装依赖,性能和可靠性都拉满,完全满足你的需求~

内容的提问来源于stack exchange,提问作者Olivia

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.28 07:12:57