我正在以31-AUG-2018的格式获取日期作为输入。我想使用Java将其转换为2018年8月31日
答案 0 :(得分:1)
解析文本。
DateTimeFormatter inputFormatter =
new DateTimeFormatterBuilder()
.parseCaseInsensitive()
.appendPattern("dd-MMM-uuuu")
.toFormatter(Locale.ENGLISH)
;
DateTimeFormatter outputformatter =
DateTimeFormatter.ofPattern("MMMMdd,uuuu", Locale.ENGLISH)
;
String input = "31-AUG-2018";
LocalDate date = LocalDate.parse(input, inputFormatter);
生成文本。
String output = date.format(outputformatter).toUpperCase(Locale.ENGLISH);
System.out.println("Converted to: " + output);
此代码段输出:
转换为:2018年8月31日
输入和输出中的所有大写字母都需要特殊处理。对于输入,我使用的是DateTimeFormatterBuilder
及其parseCaseInsensitive
方法。这提供了一个格式化程序,它将以大写或小写或它们的任意组合来解析月份的缩写。对于输出,没有比在结果上调用toUpperCase
更好的选择了。