gpt4 book ai didi

javascript - Date.toLocaleString() 返回无效的语言标签 : en_GB but Java. util.Locale 类返回 en_GB 英国语言环境

转载 作者:行者123 更新时间:2023-12-02 10:10:20 25 4
gpt4 key购买 nike

Java.util.Locale 返回英国的“en_GB”区域设置格式。当我在此 Date.toLocaleString() 函数中使用相同的语言环境时,该函数返回 Invalid language tag: en_GB 。我只是想知道为什么 java 和 javascript 的行为不同以及最好的解决方案是什么

最佳答案

I just want to know why java and javascript behaving differently

因为它们是不同的语言,每种语言都有自己的决定。

诚然,有标准的 BCP 47 来识别语言,但遗憾的是 Java 选择不使用它。

但是,java.util.Locale 是一个类,因此它本身不会“返回”任何内容。您所观察到的是让某些东西自动将 java.util.Locale 类的对象转换为 String 的结果。这是通过调用类的 toString() 方法来完成的,该方法给出结果 en_GB。

再次遗憾的是,toString() 方法本来可以实现生成 BCP 47 标准以外的任何内容,但 BCP 47 于 2009 年发布,Java 的 java.util.Locale 于 1997 年发布。自它存在以来就一直在使用它,没有人希望这些程序因任意改变方法的行为而被破坏。

总之,虽然期望尽最大努力实现最少意外原则是有值(value)的,但在期望特定格式时盲目依赖默认自动选择的转换仍然是一个相当糟糕的做法。 (毕竟,此讨论是关于指定一种语言,以便使用该语言正确设置日期格式。)

and what is the best solution for this

调用toLanguageTag()

关于javascript - Date.toLocaleString() 返回无效的语言标签 : en_GB but Java. util.Locale 类返回 en_GB 英国语言环境,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55041104/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com