如何将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
相关产品推荐
相关产品推荐

