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

如何在JavaScript中将YYYYMMDD格式字符串转为YYYY-MM-DD格式?

嘿,这个需求我碰到过好多次啦!关键是避开日期类型转换,直接操作原始字符串就稳了,给你几个不同场景下的实现方法:

各工具/语言实现方案

Python

直接用字符串切片拼接,完全不会触发日期类型转换,结果肯定是字符串:

# 原始日期字符串
raw_date = "20200101"
# 切片拼接成目标格式
formatted_date = f"{raw_date[:4]}-{raw_date[4:6]}-{raw_date[6:]}"
print(type(formatted_date))  # 输出 <class 'str'>,确认是字符串类型
print(formatted_date)        # 输出 "2020-01-01"

如果是Python 3.5及以前版本,用str.format()写法也一样靠谱:

formatted_date = "{}-{}-{}".format(raw_date[:4], raw_date[4:6], raw_date[6:])

JavaScript

同样靠字符串截取来实现,全程不碰Date对象,保证输出是字符串:

const rawDate = "20200101";
const formattedDate = `${rawDate.slice(0,4)}-${rawDate.slice(4,6)}-${rawDate.slice(6)}`;
console.log(typeof formattedDate); // 输出 "string"
console.log(formattedDate);       // 输出 "2020-01-01"

Excel

用文本函数组合处理,结果默认是文本格式,要是Excel自动识别成日期,调整单元格格式为「文本」就行:

=LEFT(A1,4)&"-"&MID(A1,5,2)&"-"&RIGHT(A1,2)

(A1是存放原始日期字符串的单元格)

通用思路总结

不管用什么工具,核心逻辑都是直接对原始字符串进行截取+拼接,不要使用任何日期解析或格式化的工具函数——那些函数很容易把结果转换成日期类型,反而麻烦。只要把前4位(年)、中间2位(月)、最后2位(日)切出来,用-连接就搞定啦。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.08 22:47:44