由于在显示日期时确实是一个格式问题(例如以当地时间显示),我喜欢使用 new(ish)Intl.DateTimeFormat
对象来执行格式设置,因为它更明确并提供更多输出选项:
const dateOptions = { timeZone: 'UTC', month: 'long', day: 'numeric', year: 'numeric' };
const dateFormatter = new Intl.DateTimeFormat('en-US', dateOptions);
const dateAsFormattedString = dateFormatter.format(new Date('2019-06-01T00:00:00.000+00:00'));
console.log(dateAsFormattedString) // "June 1, 2019"
如图所示,通过将 设置timeZone
为“UTC”,它不会执行本地转换。作为奖励,它还允许您创建更精美的输出。您可以在Mozilla - Intl.DateTimeFormat中阅读有关该Intl.DateTimeFormat
对象的更多信息。
无需创建新Intl.DateTimeFormat
对象即可实现相同的功能。只需将语言环境和日期选项直接传递到toLocaleDateString()
函数中。
const dateOptions = { timeZone: 'UTC', month: 'long', day: 'numeric', year: 'numeric' };
const myDate = new Date('2019-06-01T00:00:00.000+00:00');
myDate.toLocaleDateString('en-US', dateOptions); // "June 1, 2019"