android - 如何在java中将西方日期转换为日本日期?

标签 android calendar

我有一个西方日期字符串。我想要的是日文格式。

String date = "2015-06-01";

我想要的是日文格式。请帮助我!

output = 平成27年6月1日

最佳答案

你可以使用我的库 Time4A这也适用于较低的 Android API 级别,然后使用其 JapaneseCalendar :

    String input = "2015-06-01";
    PlainDate gregorian = Iso8601Format.EXTENDED_DATE.parse(input);
    ChronoFormatter<JapaneseCalendar> f = // immutable, so you can make it static
        ChronoFormatter.ofStyle(DisplayMode.MEDIUM, Locale.JAPANESE, JapaneseCalendar.axis());
    String output = f.print(gregorian.transform(JapaneseCalendar.axis()));
    System.out.println(output); // 平成27年6月1日

我还对 java.time 包进行了实验,该包从 API 级别 26 开始可用,但无法快速找到生成所需格式的方法:

    DateTimeFormatter dtf =
        DateTimeFormatter.ofLocalizedDate(FormatStyle.MEDIUM)
            .withLocale(Locale.JAPAN)
            .withChronology(JapaneseChronology.INSTANCE);
    JapaneseDate japaneseDate = JapaneseDate.from(LocalDate.parse(input));
    System.out.println(dtf.format(japaneseDate)); // H27.06.01

数字是正确的,但它不使用日文符号和字母,尽管我指定了日本语言环境。也许使用构建器和手工制作的模式的解决方法会进一步提供帮助。请注意,我的实验是在 Java-8 环境中执行的。也许 Android 或更新的 Java 版本不同?!

关于android - 如何在java中将西方日期转换为日本日期?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58162104/

相关文章:

android - progressDialog 动画在大型 setText() 上暂停

android - 如何在所有 Activity 中强制打开屏幕?

java - Google GCM XMPP 代码示例

calendar - 在 Windows 10 邮件应用程序上订阅日历?

android - 如何将日历事件从浏览器发布到 Android 上的日历应用程序?

javascript - Fullcalendar v2 dayRender 用于议程 View 和 agendaWeek

jsf - 在 p :calendar 上禁用特定日期

javascript - 如何在 Ionic 应用程序中以正确的方式准备好设备?

Android Activity 生命周期 - 重新启动(销毁)应用程序不会删除对(自定义)监听器的引用?

java - 为什么Java中的Date类显示的年份是减去1900后的?