我有一个西方日期字符串。我想要的是日文格式。
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/