我有一个程序来获取日语字符的年份名称:
Locale locale = new Locale("ja", "JP", "JP");
Calendar calendar = Calendar.getInstance(locale);
calendar.set(Calendar.YEAR, 1);
Date date = calendar.getTime();
DateFormat format1
= new SimpleDateFormat("GGGGy年", locale);
System.out.println("y: " + format1.format(date));
DateFormat format2
= new SimpleDateFormat("GGGGyy年", locale);
System.out.println("yy: " + format2.format(date));
DateFormat format3
= new SimpleDateFormat("GGGGyyy年", locale);
System.out.println("yyy: " + format3.format(date));
DateFormat format4
= new SimpleDateFormat("GGGGyyyy年", locale);
System.out.println("yyyy: " + format4.format(date));在eclipse控制台中要打印的是大小写,这就是我想要的。
y: 平成1年
yy: 平成01年
yyy: 平成001年
yyyy: 平成元年但是当我创建了一个jar,并且cmd运行它时,输出变成这样:
y: Heisei1年
yy: Heisei01年
yyy: Heisei001年
yyyy: Heisei1年不知道为什么会这样,我想要得到汉字。请帮帮我。谢谢。
发布于 2019-02-08 00:04:04
我运行以下测试用例:
Locale WAREKI_LOCALE = new Locale("ja", "JP", "JP");
TimeZone tz = TimeZone.getTimeZone("JST");
Calendar jcal = Calendar.getInstance(tz, WAREKI_LOCALE);
SimpleDateFormat sdf = new SimpleDateFormat("GGGG y-MM-dd zzz", WAREKI_LOCALE);
sdf.setCalendar(jcal);
SimpleDateFormat sdf2 = new SimpleDateFormat("GGGG y-MM-dd zzz", Locale.UK);
System.out.println("got = " + sdf.format(1549556043201L) + " (" + sdf2.format(1549556043201L) + ")");
System.out.println("got = " + sdf.format(-1357544756799L) + " (" + sdf2.format(-1357544756799L) + ")");并使用JDK 8和JDK 11得到以下输出:
got = 平成 31-02-08 JST (AD 2019-02-07 CET)
got = 昭和 1-12-26 JST (AD 1926-12-25 CET)另请参阅:
https://stackoverflow.com/questions/44792669
复制相似问题