今天,即2017年9月11日,JavaScript的toLocaleDateString()
方法正在为我输出9/11/2017
。但是我在英国,所以这种情况下的格式是错误的。 MDN Web Docs告诉我该方法返回“默认语言环境中的格式化字符串”。
那么,JavaScript在哪里/如何检测我的默认语言环境?该集在哪里,或依赖于什么?(如何)可以更改它?
编辑添加:如果有任何区别,我在Windows 10上使用Firefox 55.0.3。
最佳答案
简而言之,检测当前语言环境取决于实现方式,并且可能因环境而异。您的默认语言也可能取决于您用来安装浏览器的安装程序。
不是那么简短的版本:
按照ECMAScript规范,conforming browsers(以及其他环境,例如Node.js)应在implement localization之后加入ECMAScript Internationalization API (ECMA-402),后者仅概述getting the default locale的以下内容:
这意味着获取默认语言环境取决于实现,并且因浏览器而异。这是有意的,因为它允许浏览器供应商保持其最新的,不同的实现方式,以保持一致性,而不必大惊小怪。
虽然也确实有必要对此进行标准化也很不错,但是首先让每个人都加入以获得更广泛的规范,然后再解决一些小问题会更有益。
大多数现代浏览器都允许您在其首选项中更改当前的默认语言环境(显示Chrome):