Java 基于HTTP请求getLocale引发IllegalArgumentException的货币
我正在尝试基于区域设置获取货币符号,servlet中的货币代码 我尝试执行以下操作,但它抛出了Java 基于HTTP请求getLocale引发IllegalArgumentException的货币,java,servlets,illegalargumentexception,Java,Servlets,Illegalargumentexception,我正在尝试基于区域设置获取货币符号,servlet中的货币代码 我尝试执行以下操作,但它抛出了IllegalArgumentException Currency.getInstance(request.getlocale()) 区域设置的语言为“en”,但国家/地区值为空 如何获取区域设置的货币符号、货币代码?对于没有国家/地区的区域设置,要求货币是没有意义的 你问的“英语”是什么货币?这可能是美元(美国)、澳元(澳大利亚)、UKP(英国)、欧元(爱尔兰)、加元(加拿大)等。换句话说,在不知道
IllegalArgumentException
Currency.getInstance(request.getlocale())
区域设置的语言为“en”,但国家/地区值为空
如何获取区域设置的货币符号、货币代码?对于没有国家/地区的区域设置,要求货币是没有意义的 你问的“英语”是什么货币?这可能是美元(美国)、澳元(澳大利亚)、UKP(英国)、欧元(爱尔兰)、加元(加拿大)等。换句话说,在不知道国家的情况下,您无法选择货币,事实上,货币只取决于国家,而不取决于语言。国家有一种官方货币,但可以有多种语言,如加拿大有地区
fr\u-CA
和en\u-CA
另外,Javadoc(我的重点)中也非常清楚地说明了这一点:
返回给定区域设置所在国家/地区的货币实例。忽略区域设置的语言和变体组件。随着各国货币的变化,结果可能会随着时间的推移而变化。例如,对于欧洲货币联盟的原始成员国,该方法将返回2001年12月31日之前的旧国家货币,并返回各自国家当地时间2002年1月1日起的欧元
对于没有货币的地区,例如南极洲,该方法返回null
参数:
locale—需要其国家/地区货币实例的区域设置
返回:
给定区域设置所在国家/地区的货币实例,或null
抛出:
NullPointerException-如果区域设置为null
IllegalArgumentException-如果给定区域设置的国家/地区不是受支持的ISO 3166国家/地区代码。
请发布一段代码片段。
public static Currency getInstance(Locale locale)