Node.js中Intl.DateTimeFormat未按预期返回斜杠分隔日期怎么办
问题成因
- 你调用
Intl.DateTimeFormat时第一个参数传入了"default",该参数会自动匹配当前运行环境的系统默认区域设置(locale),不同区域的默认日期分隔符存在差异:例如欧洲多数区域默认用.作为日期分隔符,北美区域默认用/作为分隔符,你当前运行环境的默认locale属于使用.作为分隔符的区域,因此输出结果和指定了en-USlocale的官方示例不同。
修复方案
你可以根据需求选择以下两种修复方式:
- 明确指定你需要的区域规则,如果需要
/分隔的美式日期格式,将第一个参数替换为"en-US"即可:
const dateTimeFormat = new Intl.DateTimeFormat("en-US", { year: "numeric", month: "numeric", day: "numeric", }); // 调用format输出示例:3/9/2021
- 如果你需要完全固定分隔符、不受运行环境区域设置影响,直接手动拼接日期字段即可:
const date = new Date(); // 如需补前导零,可对月份、日期调用padStart(2, '0')处理 const formattedDate = `${date.getMonth() + 1}/${date.getDate()}/${date.getFullYear()}`;
内容的提问来源于stack exchange,提问作者elad BA
相关产品推荐
相关产品推荐

