java.text.NumberFormat extends java.text.Format extends java.lang.Object 實現的接口:Serializable, Cloneable 直接子類:ChoiceFormat, DecimalFormat
java.text.NumberFormat extends java.text.Format extends java.lang.Object
實現的接口:Serializable, Cloneable
直接子類:ChoiceFormat, DecimalFormat
myString = NumberFormat.getInstance().format(myNumber);
myString = NumberFormat.getInstance().format(myNumber);
NumberFormat nf = NumberFormat.getInstance(Locale.FRENCH);
NumberFormat nf = NumberFormat.getInstance(Locale.FRENCH);
myNumber = nf.parse(myString);
myNumber = nf.parse(myString);
public class Test { public static void main(String[] args) { testGetInstance(); System.out.println("----------testSetDigits------------"); testSetDigits(); System.out.println("-----------testRoundingMode-----------"); testRoundingMode(); System.out.println("-----------testParse-----------"); testParse(); } private static void testGetInstance() { double d = 23323.3323232323; System.out.println(NumberFormat.getInstance().format(d));//23,323.332。返回當前缺省語言環境的【缺省數值】格式 System.out.println(NumberFormat.getCurrencyInstance().format(d));//¥23,323.33。返回當前缺省語言環境的【貨幣】格式 System.out.println(NumberFormat.getNumberInstance().format(d));//23,323.332。返回當前缺省語言環境的【通用數值】格式 System.out.println(NumberFormat.getIntegerInstance().format(d));//23,323。返回當前缺省語言環境的【整數】格式 System.out.println(NumberFormat.getPercentInstance().format(d));//2,332,333%。返回當前缺省語言環境的【百分比】格式 } private static void testSetDigits() { NumberFormat format = NumberFormat.getInstance(); format.setParseIntegerOnly(true);//設置數是否應該僅做爲整數進行解析。此方法隻影響解析,與格式化無關 format.setMinimumFractionDigits(2);//設置數值的【小數部分】容許的最小位數。這幾個方法隻影響格式化,與解析無關 format.setMaximumFractionDigits(3);//設置數值的【小數部分】容許的最大位數 format.setMinimumIntegerDigits(1);//設置數值的【整數部分】容許的最小位數 format.setMaximumIntegerDigits(5);//設置數值的【整數部分】容許的最大位數 System.out.println(format.format(123.1234));//123.123 System.out.println(format.format(123.1000));//123.10 System.out.println(format.format(123456789.12345));//56,789.123 } private static void testRoundingMode() { NumberFormat format = NumberFormat.getInstance(); format.setMaximumFractionDigits(0);//設置數值的【小數部分】容許的最大位數 System.out.println("默認模式爲:" + format.getRoundingMode().name());//HALF_EVEN System.out.println(format.format(5.6));//6。5以上不論是奇數仍是偶數,5都舍入 System.out.println(format.format(5.4));//5。5如下不論是奇數仍是偶數,5都捨去 System.out.println(format.format(1.5));//2。當是5時,若前一位是奇數,5就舍入 System.out.println(format.format(2.5));//2。當是5時,若前一位是偶數,5就捨去 format.setRoundingMode(RoundingMode.HALF_UP);//四捨五入。此方法隻影響格式化,與解析無關 System.out.println("當前模式爲:" + format.getRoundingMode().name());//HALF_UP System.out.println(format.format(5.6));//6 System.out.println(format.format(5.4));//5 System.out.println(format.format(1.5));//2 System.out.println(format.format(2.5));//3 } private static void testParse() { NumberFormat format = NumberFormat.getInstance(); format.setParseIntegerOnly(false);//設置數是否應該僅做爲整數進行解析。此方法隻影響解析,與格式化無關 format.setMinimumFractionDigits(2);//這幾個方法隻影響格式化,與解析無關 ParsePosition position = new ParsePosition(2); try { Number number = format.parse("00123.10050100結尾處不受影響");//若是沒法解析字符串的【開頭】則拋出ParseException Number number2 = format.parse("開頭00123.10050100結尾處不受影響", position);//解析字符串時,從position.getIndex()處開始解析 System.out.println(number.floatValue());//123.1005 System.out.println(number.intValue());//123 System.out.println(number2.doubleValue());//123.100501 System.out.println(position.getIndex());//16。解析前,表明解析開始處字符的索引;解析後,表明被解析的最後一個字符後的字符的索引 System.out.println(position.getErrorIndex());//-1。獲取出錯時的索引,若是沒有設置錯誤索引,則爲 -1 position.setIndex(1);//若是重用ParsePosition,須從新設置一下Index才能夠 System.out.println(format.parse("12.345678只解析", position).floatValue());//2.345678 } catch (ParseException e) { e.printStackTrace(); } } }
public class Test {
public static void main(String[] args) {
testGetInstance();
System.out.println("----------testSetDigits------------");
testSetDigits();
System.out.println("-----------testRoundingMode-----------");
testRoundingMode();
System.out.println("-----------testParse-----------");
testParse();
}
private static void testGetInstance() {
double d = 23323.3323232323;
System.out.println(NumberFormat.getInstance().format(d));//23,323.332。返回當前缺省語言環境的【缺省數值】格式
System.out.println(NumberFormat.getCurrencyInstance().format(d));//¥23,323.33。返回當前缺省語言環境的【貨幣】格式
System.out.println(NumberFormat.getNumberInstance().format(d));//23,323.332。返回當前缺省語言環境的【通用數值】格式
System.out.println(NumberFormat.getIntegerInstance().format(d));//23,323。返回當前缺省語言環境的【整數】格式
System.out.println(NumberFormat.getPercentInstance().format(d));//2,332,333%。返回當前缺省語言環境的【百分比】格式
}
private static void testSetDigits() {
NumberFormat format = NumberFormat.getInstance();
format.setParseIntegerOnly(true);//設置數是否應該僅做爲整數進行解析。此方法隻影響解析,與格式化無關
format.setMinimumFractionDigits(2);//設置數值的【小數部分】容許的最小位數。這幾個方法隻影響格式化,與解析無關
format.setMaximumFractionDigits(3);//設置數值的【小數部分】容許的最大位數
format.setMinimumIntegerDigits(1);//設置數值的【整數部分】容許的最小位數
format.setMaximumIntegerDigits(5);//設置數值的【整數部分】容許的最大位數
System.out.println(format.format(123.1234));//123.123
System.out.println(format.format(123.1000));//123.10
System.out.println(format.format(123456789.12345));//56,789.123
}
private static void testRoundingMode() {
NumberFormat format = NumberFormat.getInstance();
format.setMaximumFractionDigits(0);//設置數值的【小數部分】容許的最大位數
System.out.println("默認模式爲:" + format.getRoundingMode().name());//HALF_EVEN
System.out.println(format.format(5.6));//6。5以上不論是奇數仍是偶數,5都舍入
System.out.println(format.format(5.4));//5。5如下不論是奇數仍是偶數,5都捨去
System.out.println(format.format(1.5));//2。當是5時,若前一位是奇數,5就舍入
System.out.println(format.format(2.5));//2。當是5時,若前一位是偶數,5就捨去
format.setRoundingMode(RoundingMode.HALF_UP);//四捨五入。此方法隻影響格式化,與解析無關
System.out.println("當前模式爲:" + format.getRoundingMode().name());//HALF_UP
System.out.println(format.format(5.6));//6
System.out.println(format.format(5.4));//5
System.out.println(format.format(1.5));//2
System.out.println(format.format(2.5));//3
}
private static void testParse() {
NumberFormat format = NumberFormat.getInstance();
format.setParseIntegerOnly(false);//設置數是否應該僅做爲整數進行解析。此方法隻影響解析,與格式化無關
format.setMinimumFractionDigits(2);//這幾個方法隻影響格式化,與解析無關
ParsePosition position = new ParsePosition(2);
try {
Number number = format.parse("00123.10050100結尾處不受影響");//若是沒法解析字符串的【開頭】則拋出ParseException
Number number2 = format.parse("開頭00123.10050100結尾處不受影響", position);//解析字符串時,從position.getIndex()處開始解析
System.out.println(number.floatValue());//123.1005
System.out.println(number.intValue());//123
System.out.println(number2.doubleValue());//123.100501
System.out.println(position.getIndex());//16。解析前,表明解析開始處字符的索引;解析後,表明被解析的最後一個字符後的字符的索引
System.out.println(position.getErrorIndex());//-1。獲取出錯時的索引,若是沒有設置錯誤索引,則爲 -1
position.setIndex(1);//若是重用ParsePosition,須從新設置一下Index才能夠
System.out.println(format.parse("12.345678只解析", position).floatValue());//2.345678
} catch (ParseException e) {
e.printStackTrace();
}
}
}
java.text.DecimalFormat extends java.text.NumberFormat extends java.text.Format extends java.lang.Object 實現的接口:Serializable, Cloneable 直接子類:ChoiceFormat, DecimalFormat
java.text.DecimalFormat extends java.text.NumberFormat extends java.text.Format extends java.lang.Object
實現的接口:Serializable, Cloneable
直接子類:ChoiceFormat, DecimalFormat
System.out.println(NumberFormat.getInstance() instanceof DecimalFormat);//true
System.out.println(NumberFormat.getInstance() instanceof DecimalFormat);//true
NumberFormat f = NumberFormat.getInstance(loc); if (f instanceof DecimalFormat) ((DecimalFormat) f).setDecimalSeparatorAlwaysShown(true);
NumberFormat f = NumberFormat.getInstance(loc);
if (f instanceof DecimalFormat) ((DecimalFormat) f).setDecimalSeparatorAlwaysShown(true);
符號 位置 本地化 含義 0
數字 是 阿拉伯數字 #
數字 是 阿拉伯數字,若是不存在則顯示爲 0 .
數字 是 小數分隔符或貨幣小數分隔符 -
數字 是 減號 ,
數字 是 分組分隔符 E
數字 是 分隔科學計數法中的尾數和指數。在前綴或後綴中無需加引號。 ;
子模式邊界 是 分隔正數和負數子模式 %
前綴或後綴 是 乘以 100 並顯示爲百分數 \u2030
前綴或後綴 是 乘以 1000 並顯示爲千分數 ¤
(\u00A4
)前綴或後綴 否 貨幣記號,由貨幣符號替換。若是兩個同時出現,則用國際貨幣符號替換。若是出如今某個模式中,則使用貨幣小數分隔符,而不使用小數分隔符。 '
前綴或後綴 否 用於在前綴或或後綴中爲特殊字符加引號,例如 "'#'#"
將 123 格式化爲"#123"
。要建立單引號自己,請連續使用兩個單引號:"# o''clock"
。
public class Test { public static void main(String[] args) { testPatterns(); testPatterns2(); testDecimalFormat(); } public static void testPatterns() { //DecimalFormat中,佔位符 0 表示若是位數不足則以 0 填充,佔位符 # 表示只要有可能就把數字拉上這個位置 double pi = 3.1415927; System.out.println("-------------------3.1415927------------------"); System.out.println(new DecimalFormat("0").format(pi)); //3 System.out.println(new DecimalFormat("0.00").format(pi));//3.14 System.out.println(new DecimalFormat("00.000").format(pi));//03.142 System.out.println(new DecimalFormat("0.00%").format(pi));//以百分比方式計數,314.16% System.out.println(new DecimalFormat("#").format(pi)); //3 System.out.println(new DecimalFormat("#.##").format(pi)); //3.14 System.out.println(new DecimalFormat("##.###").format(pi)); //3.142 System.out.println(new DecimalFormat("#.##%").format(pi));//314.16% float f = 12.34f; System.out.println("---------------------12.34----------------"); System.out.println(new DecimalFormat("0.0").format(f));//12.3 System.out.println(new DecimalFormat("#.#").format(f));//12.3 System.out.println(new DecimalFormat("000.000").format(f));//012.340 System.out.println(new DecimalFormat("###.###").format(f));//12.34 long l = 123456789L; System.out.println("-------------------123456789------------------"); System.out.println(new DecimalFormat("#.##############E0").format(l));//1.23456789E8 System.out.println(new DecimalFormat("00.##E00").format(l));//12.35E07 System.out.println(new DecimalFormat(",###").format(l)); //每三位以逗號進行分隔。123,456,789 System.out.println(new DecimalFormat("值爲,###米/秒").format(l));//【值爲123,456,789米/秒】 } private static void testPatterns2() { double pi = 3.1415927; long l = 1234567890123456789L; int i = 10086; float f = 0.01f; System.out.println("--------------------#,##0.00-----------------"); String pattern = "#,##0.00";//強制保留兩位小數,整數部分每三位以逗號分隔,整數部分至少一位 System.out.println(new DecimalFormat(pattern).format(pi));//3.14 System.out.println(new DecimalFormat(pattern).format(l));//1,234,567,890,123,456,789.00 System.out.println(new DecimalFormat(pattern).format(i));//10,086.00 System.out.println(new DecimalFormat(pattern).format(f));//0.01 System.out.println("--------------------NumberFormat-----------------"); NumberFormat format = NumberFormat.getNumberInstance(); format.setMinimumFractionDigits(2); format.setMaximumFractionDigits(2);//設置這兩個之後,效果和上面同樣,不然和【#,##0.###】同樣 System.out.println(format.format(pi));//3.14 System.out.println(format.format(l));//1,234,567,890,123,456,789.00 System.out.println(format.format(i));//10,086.00 System.out.println(format.format(f));//0.01 } private static void testDecimalFormat() { NumberFormat format = NumberFormat.getNumberInstance(); if (format instanceof DecimalFormat) { DecimalFormat dFormat = (DecimalFormat) format; System.out.println("--------------------DecimalFormat-----------------"); System.out.println(dFormat.getGroupingSize());//【3】分組大小 System.out.println(dFormat.getRoundingMode());//【HALF_EVEN】 System.out.println(dFormat.toPattern());//【#,##0.###】合成一個表示此 Format 對象當前狀態的模式字符串 System.out.println(dFormat.toLocalizedPattern());//【#,##0.###】合成一個表示此 Format 對象當前狀態的、已本地化的模式字符串 System.out.println("------------------位數-------------------"); System.out.println(dFormat.getMaximumFractionDigits());//【3】 System.out.println(dFormat.getMinimumFractionDigits());//【0】 System.out.println(dFormat.getMaximumIntegerDigits());//【2147483647】也就是int類型的最大值 System.out.println(dFormat.getMinimumFractionDigits());//【0】 System.out.println("---------------------雜項----------------"); System.out.println(dFormat.getCurrency());//【CNY】使用的貨幣符號,代碼CNY(China Yuan)是ISO分配給中國的幣種符號 System.out.println(dFormat.getMultiplier());//【1】獲取百分數、千分數等格式中使用的乘數(對於百分數格式,爲100) System.out.println(dFormat.isDecimalSeparatorAlwaysShown());//【false】容許獲取整數中小數分隔符的行爲 System.out.println(dFormat.isParseBigDecimal());//【false】parse(String,ParsePosition) 方法是否返回 BigDecimal } } }
public class Test {
public static void main(String[] args) {
testPatterns();
testPatterns2();
testDecimalFormat();
}
public static void testPatterns() {
//DecimalFormat中,佔位符 0 表示若是位數不足則以 0 填充,佔位符 # 表示只要有可能就把數字拉上這個位置
double pi = 3.1415927;
System.out.println("-------------------3.1415927------------------");
System.out.println(new DecimalFormat("0").format(pi)); //3
System.out.println(new DecimalFormat("0.00").format(pi));//3.14
System.out.println(new DecimalFormat("00.000").format(pi));//03.142
System.out.println(new DecimalFormat("0.00%").format(pi));//以百分比方式計數,314.16%
System.out.println(new DecimalFormat("#").format(pi)); //3
System.out.println(new DecimalFormat("#.##").format(pi)); //3.14
System.out.println(new DecimalFormat("##.###").format(pi)); //3.142
System.out.println(new DecimalFormat("#.##%").format(pi));//314.16%
float f = 12.34f;
System.out.println("---------------------12.34----------------");
System.out.println(new DecimalFormat("0.0").format(f));//12.3
System.out.println(new DecimalFormat("#.#").format(f));//12.3
System.out.println(new DecimalFormat("000.000").format(f));//012.340
System.out.println(new DecimalFormat("###.###").format(f));//12.34
long l = 123456789L;
System.out.println("-------------------123456789------------------");
System.out.println(new DecimalFormat("#.##############E0").format(l));//1.23456789E8
System.out.println(new DecimalFormat("00.##E00").format(l));//12.35E07
System.out.println(new DecimalFormat(",###").format(l)); //每三位以逗號進行分隔。123,456,789
System.out.println(new DecimalFormat("值爲,###米/秒").format(l));//【值爲123,456,789米/秒】
}
private static void testPatterns2() {
double pi = 3.1415927;
long l = 1234567890123456789L;
int i = 10086;
float f = 0.01f;
System.out.println("--------------------#,##0.00-----------------");
String pattern = "#,##0.00";//強制保留兩位小數,整數部分每三位以逗號分隔,整數部分至少一位
System.out.println(new DecimalFormat(pattern).format(pi));//3.14
System.out.println(new DecimalFormat(pattern).format(l));//1,234,567,890,123,456,789.00
System.out.println(new DecimalFormat(pattern).format(i));//10,086.00
System.out.println(new DecimalFormat(pattern).format(f));//0.01
System.out.println("--------------------NumberFormat-----------------");
NumberFormat format = NumberFormat.getNumberInstance();
format.setMinimumFractionDigits(2);
format.setMaximumFractionDigits(2);//設置這兩個之後,效果和上面同樣,不然和【#,##0.###】同樣
System.out.println(format.format(pi));//3.14
System.out.println(format.format(l));//1,234,567,890,123,456,789.00
System.out.println(format.format(i));//10,086.00
System.out.println(format.format(f));//0.01
}
private static void testDecimalFormat() {
NumberFormat format = NumberFormat.getNumberInstance();
if (format instanceof DecimalFormat) {
DecimalFormat dFormat = (DecimalFormat) format;
System.out.println("--------------------DecimalFormat-----------------");
System.out.println(dFormat.getGroupingSize());//【3】分組大小
System.out.println(dFormat.getRoundingMode());//【HALF_EVEN】
System.out.println(dFormat.toPattern());//【#,##0.###】合成一個表示此 Format 對象當前狀態的模式字符串
System.out.println(dFormat.toLocalizedPattern());//【#,##0.###】合成一個表示此 Format 對象當前狀態的、已本地化的模式字符串
System.out.println("------------------位數-------------------");
System.out.println(dFormat.getMaximumFractionDigits());//【3】
System.out.println(dFormat.getMinimumFractionDigits());//【0】
System.out.println(dFormat.getMaximumIntegerDigits());//【2147483647】也就是int類型的最大值
System.out.println(dFormat.getMinimumFractionDigits());//【0】
System.out.println("---------------------雜項----------------");
System.out.println(dFormat.getCurrency());//【CNY】使用的貨幣符號,代碼CNY(China Yuan)是ISO分配給中國的幣種符號
System.out.println(dFormat.getMultiplier());//【1】獲取百分數、千分數等格式中使用的乘數(對於百分數格式,爲100)
System.out.println(dFormat.isDecimalSeparatorAlwaysShown());//【false】容許獲取整數中小數分隔符的行爲
System.out.println(dFormat.isParseBigDecimal());//【false】parse(String,ParsePosition) 方法是否返回 BigDecimal
}
}
}
輸入 | UP | DOWN | CEILING | FLOOR | HALF_UP | HALF_DOWN | HALF_EVEN | UNNECESSARY |
---|---|---|---|---|---|---|---|---|
5.5 | 6 | 5 | 6 | 5 | 6 | 5 | 6 | Exception |
2.5 | 3 | 2 | 3 | 2 | 3 | 2 | 2 | Exception |
1.6 | 2 | 1 | 2 | 1 | 2 | 2 | 2 | Exception |
1.1 | 2 | 1 | 2 | 1 | 1 | 1 | 1 | Exception |
1.0 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 |
-1.0 | -1 | -1 | -1 | -1 | -1 | -1 | -1 | -1 |
-1.1 | -2 | -1 | -1 | -2 | -1 | -1 | -1 | Exception |
-1.6 | -2 | -1 | -1 | -2 | -2 | -2 | -2 | Exception |
-2.5 | -3 | -2 | -2 | -3 | -3 | -2 | -2 | Exception |
-5.5 | -6 | -5 | -5 | -6 | -6 | -5 | -6 | Exception |
public class Test { public static void main(String[] args) { DecimalFormat format = (DecimalFormat) NumberFormat.getNumberInstance(); DecimalFormatSymbols symbols = format.getDecimalFormatSymbols(); System.out.println("---------------------DecimalFormatSymbols----------------"); System.out.println(symbols.getDecimalSeparator());//【.】用於十進制符號的字符 System.out.println(symbols.getDigit());//【#】用於某種模式中數字的字符 System.out.println(symbols.getExponentSeparator());//【E】用於分隔尾數和指數的字符串 System.out.println(symbols.getGroupingSeparator());//【,】用於千位分隔符的字符 System.out.println(symbols.getMinusSign());//【-】用於表示減號的字符 System.out.println(symbols.getMonetaryDecimalSeparator());//【.】貨幣小數點分隔符 System.out.println(symbols.getPercent());//【%】用於百分數符號的字符 System.out.println(symbols.getPerMill());//【‰】用於千分數符號的字符 System.out.println(symbols.getZeroDigit());//【0】用於零的字符 System.out.println("---------------------2----------------"); System.out.println(symbols.getCurrency());//【CNY】貨幣 System.out.println(symbols.getInternationalCurrencySymbol());//【CNY】貨幣的 ISO 4217 貨幣代碼 System.out.println(symbols.getCurrencySymbol());//【¥】貨幣在其語言環境中的貨幣符號 System.out.println(symbols.getInfinity());//【∞】得到用於表示無窮大的字符串 System.out.println(symbols.getNaN());//【�】得到用於表示「非數字」的字符串 System.out.println(symbols.getPatternSeparator());//【;】用於在模式中分隔正數和負數子模式的字符 System.out.println(Arrays.toString(DecimalFormatSymbols.getAvailableLocales()));//可以使用的語言環境 } }
public class Test {
public static void main(String[] args) {
DecimalFormat format = (DecimalFormat) NumberFormat.getNumberInstance();
DecimalFormatSymbols symbols = format.getDecimalFormatSymbols();
System.out.println("---------------------DecimalFormatSymbols----------------");
System.out.println(symbols.getDecimalSeparator());//【.】用於十進制符號的字符
System.out.println(symbols.getDigit());//【#】用於某種模式中數字的字符
System.out.println(symbols.getExponentSeparator());//【E】用於分隔尾數和指數的字符串
System.out.println(symbols.getGroupingSeparator());//【,】用於千位分隔符的字符
System.out.println(symbols.getMinusSign());//【-】用於表示減號的字符
System.out.println(symbols.getMonetaryDecimalSeparator());//【.】貨幣小數點分隔符
System.out.println(symbols.getPercent());//【%】用於百分數符號的字符
System.out.println(symbols.getPerMill());//【‰】用於千分數符號的字符
System.out.println(symbols.getZeroDigit());//【0】用於零的字符
System.out.println("---------------------2----------------");
System.out.println(symbols.getCurrency());//【CNY】貨幣
System.out.println(symbols.getInternationalCurrencySymbol());//【CNY】貨幣的 ISO 4217 貨幣代碼
System.out.println(symbols.getCurrencySymbol());//【¥】貨幣在其語言環境中的貨幣符號
System.out.println(symbols.getInfinity());//【∞】得到用於表示無窮大的字符串
System.out.println(symbols.getNaN());//【�】得到用於表示「非數字」的字符串
System.out.println(symbols.getPatternSeparator());//【;】用於在模式中分隔正數和負數子模式的字符
System.out.println(Arrays.toString(DecimalFormatSymbols.getAvailableLocales()));//可以使用的語言環境
}
}
[, ar_AE, ar_JO, ar_SY, hr_HR, fr_BE, es_PA, mt_MT, es_VE, bg, zh_TW, it, ko, uk, lv, da_DK, es_PR, vi_VN, en_US, sr_ME, sv_SE, es_BO, en_SG, ar_BH, pt, ar_SA, sk, ar_YE, hi_IN, ga, en_MT, fi_FI, et, sv, cs, sr_BA_#Latn, el, uk_UA, hu, fr_CH, in, es_AR, ar_EG, ja_JP_JP_#u-ca-japanese, es_SV, pt_BR, be, is_IS, cs_CZ, es, pl_PL, tr, ca_ES, sr_CS, ms_MY, hr, lt, es_ES, es_CO, bg_BG, sq, fr, ja, sr_BA, is, es_PY, de, es_EC, es_US, ar_SD, en, ro_RO, en_PH, ca, ar_TN, sr_ME_#Latn, es_GT, sl, ko_KR, el_CY, es_MX, ru_RU, es_HN, zh_HK, no_NO_NY, hu_HU, th_TH, ar_IQ, es_CL, fi, ar_MA, ga_IE, mk, tr_TR, et_EE, ar_QA, sr__#Latn, pt_PT, fr_LU, ar_OM, th, sq_AL, es_DO, es_CU, ar, ru, en_NZ, sr_RS, de_CH, es_UY, ms, el_GR, iw_IL, en_ZA, th_TH_TH_#u-nu-thai, hi, fr_FR, de_AT, nl, no_NO, en_AU, vi, nl_NL, fr_CA, lv_LV, de_LU, es_CR, ar_KW, sr, ar_LY, mt, it_CH, da, de_DE, ar_DZ, sk_SK, lt_LT, it_IT, en_IE, zh_SG, ro, en_CA, nl_BE, no, pl, zh_CN, ja_JP, de_GR, sr_RS_#Latn, iw, en_IN, ar_LB, es_NI, zh, mk_MK, be_BY, sl_SI, es_PE, in_ID, en_GB]
[, ar_AE, ar_JO, ar_SY, hr_HR, fr_BE, es_PA, mt_MT, es_VE, bg, zh_TW, it, ko, uk, lv, da_DK, es_PR, vi_VN, en_US, sr_ME, sv_SE, es_BO, en_SG, ar_BH, pt, ar_SA, sk, ar_YE, hi_IN, ga, en_MT, fi_FI, et, sv, cs, sr_BA_#Latn, el, uk_UA, hu, fr_CH, in, es_AR, ar_EG, ja_JP_JP_#u-ca-japanese, es_SV, pt_BR, be, is_IS, cs_CZ, es, pl_PL, tr, ca_ES, sr_CS, ms_MY, hr, lt, es_ES, es_CO, bg_BG, sq, fr, ja, sr_BA, is, es_PY, de, es_EC, es_US, ar_SD, en, ro_RO, en_PH, ca, ar_TN, sr_ME_#Latn, es_GT, sl, ko_KR, el_CY, es_MX, ru_RU, es_HN, zh_HK, no_NO_NY, hu_HU, th_TH, ar_IQ, es_CL, fi, ar_MA, ga_IE, mk, tr_TR, et_EE, ar_QA, sr__#Latn, pt_PT, fr_LU, ar_OM, th, sq_AL, es_DO, es_CU, ar, ru, en_NZ, sr_RS, de_CH, es_UY, ms, el_GR, iw_IL, en_ZA, th_TH_TH_#u-nu-thai, hi, fr_FR, de_AT, nl, no_NO, en_AU, vi, nl_NL, fr_CA, lv_LV, de_LU, es_CR, ar_KW, sr, ar_LY, mt, it_CH, da, de_DE, ar_DZ, sk_SK, lt_LT, it_IT, en_IE, zh_SG, ro, en_CA, nl_BE, no, pl, zh_CN, ja_JP, de_GR, sr_RS_#Latn, iw, en_IN, ar_LB, es_NI, zh, mk_MK, be_BY, sl_SI, es_PE, in_ID, en_GB]