toLocaleTimeString
应该按照用户的偏好以特定格式显示时间,但它并不可靠。
我在一个 Debian 系统上。运行 locale
命令的输出为:
LANG=en_US.utf8
LANGUAGE=
LC_CTYPE="en_US.utf8"
LC_NUMERIC="en_US.utf8"
LC_TIME="en_US.utf8"
LC_COLLATE="en_US.utf8"
LC_MONETARY="en_US.utf8"
LC_MESSAGES="en_US.utf8"
LC_PAPER="en_US.utf8"
LC_NAME="en_US.utf8"
LC_ADDRESS="en_US.utf8"
LC_TELEPHONE="en_US.utf8"
LC_MEASUREMENT="en_US.utf8"
LC_IDENTIFICATION="en_US.utf8"
LC_ALL=
这里有几个关于
日期
的实验:
$ date +%X
05:23:32 PM
$ LANG=en_GB date +%X
17:24:06
$ LC_TIME=en_GB date +%X
17:24:22
%X
格式告诉date
根据本地语言输出时间。以上结果正如所预期的一样。设置LC_TIME
是一种仅更改时间格式但保持其余语言环境不变的方法。因此,即使默认设置为12小时制,美国用户也可以使用24小时制。
我在我的系统上尝试了Mouser's脚本:
$ firefox --no-remote
[Shows a time in the 12 hour format, as expected.]
$ LANG=en_GB firefox --no-remote
[Shows a time in the 24 hour format, as expected.]
到目前为止一切都很好。然而,
$ LC_TIME=en_GB firefox --no-remote
[Shows a time in the 12 hour format, this is wrong!]
我在使用Chrome时得到了相同的结果。看起来Firefox和Chrome都忽略了
LC_TIME
。
.toLocaleTimeString()
显示12小时制时间,无论我的设置如何。 - Hydrothermal