加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > Java > 正文

java – 获取日文年份名称

发布时间:2020-12-15 02:19:42 所属栏目:Java 来源:网络整理
导读:我有一个程序来获取日文字符年份名称: 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 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年

不知道为什么会这样,我想要得到汉字.
请帮我.
谢谢.

解决方法

我运行以下测试用例:

Locale WAREKI_LOCALE = new Locale("ja","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://github.com/twosigma/OpenJDK/blob/master/test/jdk/java/util/Calendar/SupplementalJapaneseEraTest.java

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读