1 回答

TA貢獻(xiàn)1836條經(jīng)驗(yàn) 獲得超3個(gè)贊
DateTimeFormat.format返回的字符串的格式是基于語(yǔ)言代碼的,但是沒(méi)有規(guī)范將語(yǔ)言映射到格式。因此,每個(gè)實(shí)現(xiàn)都可以自由地將語(yǔ)言映射到它想要的格式。大多數(shù)情況下,它們是一致的,但并非總是如此。如果不支持特定語(yǔ)言,它可能會(huì)回退到默認(rèn)值(例如 ISO 8601 或像 en 這樣的通用語(yǔ)言代碼)。
如果您想要特定格式,請(qǐng)使用您自己的函數(shù)手動(dòng)執(zhí)行或使用庫(kù),請(qǐng)參閱如何格式化 JavaScript 日期。
例如,您可以將formatToParts與更通用的語(yǔ)言代碼一起使用:
function format(date) {
let {year, month, day} = new Intl.DateTimeFormat('pl', {
year: 'numeric',
month: '2-digit',
day: '2-digit'
}).formatToParts(date).reduce((acc, part) => {
if (part.type != 'literal') {
acc[part.type] = part.value;
}
return acc;
}, Object.create(null));
return `${day}.${month}.${year}`;
}
console.log(format(new Date(2019, 2, 4)));
添加回答
舉報(bào)