【发布时间】:2018-08-23 15:06:18
【问题描述】:
我想打印一个表示日期的字符串,使用特定的时区、区域设置和显示选项。
我应该使用哪一个?
似乎它们返回相同的结果。
const event = new Date(1521065710000);
const options = {
day: 'numeric',
month: 'long',
weekday: 'short',
hour: 'numeric',
minute: 'numeric',
timeZoneName: 'short',
timeZone: 'America/Los_Angeles',
};
console.log(event.toLocaleString('en-US', options));
// "Wed, March 14, 3:15 PM PDT"
console.log(new Intl.DateTimeFormat('en-US', options).format(event));
// "Wed, March 14, 3:15 PM PDT"
【问题讨论】:
-
出于所有实际目的,它们是相同的。 toLocaleString 最初纯粹依赖于实现,但现在它也支持与 Intl 对象相同的选项,两者都基于 ECMA-402 Internationalization API。请注意,ECMA-402 没有指定格式,它只要求符合区域或文化偏好,这可能在实现之间有所不同,即使对于相同的语言和区域也是如此。因此,您可能无法获得完全一致的结果(但非常接近)。
-
@RobG 是的,当然,唤醒错字......而我想记住的关于 perfs 的可能只是 the note in MDN。
-
@Kaiido——没问题。 ;-)
标签: javascript date date-format