javascript - toLocaleString、toLocaleDateString 和 toLocaleTimeString 有什么区别?

标签 javascript locale string-formatting

尝试阅读文档,但似乎无法找到它们之间的区别(如果有的话)。它们似乎都接受相同的参数和语言环境,并且它们似乎返回相同的值。

它们只是同一功能的别名吗?或者他们之间真的有区别吗?

const locale = 'no-nb'
const options = {
  day: '2-digit', month: 'long',
  hour: '2-digit', minute: '2-digit'
}

new Date().toLocaleString(locale, options)
"18. mai, 15"

new Date().toLocaleDateString(locale, options)
"18. mai, 15"

new Date().toLocaleTimeString(locale, options)
"18. mai, 15"

最佳答案

如果您为至少一个日期元素(daymonthyear)和至少一个时间元素(hourminute)提供自定义格式,所有这些都会给出完全相同的结果, second)。

它们的用途和默认行为不同。尝试跳过所有自定义时间格式,例如:

new Date().toLocaleString('no-nb', {day: '2-digit'})
// 18

new Date().toLocaleDateString('no-nb', {day: '2-digit'})
// 18

new Date().toLocaleTimeString('no-nb', {day: '2-digit'})
// 18, 15:37:37

如您所见,toLocaleTimeString()总是把时间放在那里,如果你没有指定它,使用默认的时间格式。
toLocaleDateString()做同样的事情,但日期而不是时间:

new Date().toLocaleString('no-nb', {hour: '2-digit'})
// 15

new Date().toLocaleDateString('no-nb', {hour: '2-digit'})
// 18.05.2020, 15

new Date().toLocaleTimeString('no-nb', {hour: '2-digit'})
// 15
toLocaleString()允许您以您喜欢的方式格式化您的日期,它不会添加任何额外内容。

关于javascript - toLocaleString、toLocaleDateString 和 toLocaleTimeString 有什么区别?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61870462/

相关文章:

javascript - 如何删除DOM中的 Angular 生成元素

c++ - 如何让 std::stringstream 在 float 上排列小数位?

c# - 格式化数字以始终具有符号和小数点分隔符

c - 强制用户以特定格式编写输入

javascript - 无法调用 jquery 插件方法

javascript - 缩短 Ajax 代码

javascript - 试图在一个 <li> 中使用两个 <div>,它们应该运行一个脚本。 [不确定是否可行]

java - ResourceBundle getLocale().getDisplayLanguage() 返回空字符串

java - I18n - 数据位于一种语言环境中,ui 位于另一种语言环境中,我应使用哪种语言环境进行排序?

python 3, headless RaspPi,python-evdev 不可能使用语言环境 de_DE