JavaScript 如何格式化JavaScript日期
在JavaScript中,如何格式化日期对象以打印为10-Aug-2010
?
回答:
对于自定义分隔的日期格式,你必须从DateTimeFormat对象(属于ECMAScript Internationalization API的一部分)中提取日期(或时间)组件,然后手动使用所需的分隔符创建字符串。
为此,你可以使用DateTimeFormat#formatToParts:
const d = new Date('2010-08-05')const dtf = new Intl.DateTimeFormat('en', { year: 'numeric', month: 'short', day: '2-digit' })
const [{ value: mo },,{ value: da },,{ value: ye }] = dtf.formatToParts(d)
console.log(`${da}-${mo}-${ye}`)
console.log(`${da}${mo}${ye}`) // just for fun
你还可以DateTimeFormat
使用来一对一地提取各个部分DateTimeFormat#format
,但请注意,使用此方法时,截至2020年3月,ECMAScript实现中存在一个错误,涉及分钟和秒前导零(此错误被上述方法规避了)。
const d = new Date('2010-08-05')const ye = new Intl.DateTimeFormat('en', { year: 'numeric' }).format(d)
const mo = new Intl.DateTimeFormat('en', { month: 'short' }).format(d)
const da = new Intl.DateTimeFormat('en', { day: '2-digit' }).format(d)
console.log(`${da}-${mo}-${ye}`)
在处理日期和时间时,通常值得使用一个库(例如moment.js,luxon),因为该字段存在许多隐藏的复杂性。
请注意,IE10不支持在上述解决方案中使用的ECMAScript国际化API (2020年2月全球浏览器市场份额为0.03%)。
以上是 JavaScript 如何格式化JavaScript日期 的全部内容, 来源链接: utcz.com/qa/435408.html