我只需要将月号更改为月名 ...
我尝试放置三个M而不是两个,并且显示错误。 我有点知道问题,但不知道如何解决。
DateTimeFormatter formater = DateTimeFormatter.ofPattern("ddMMyyyy");
Person[] people = new Person[parts.length / 4];
int br = 0;
for (int i = 0; i < parts.length; i += 4) {
LocalDate datum = LocalDate.parse(parts[i + 2], formater);
people[br++] = new Person(parts[i], parts[i + 1],datum, parts[i + 3]);
}
代替“ 1988-05-05”, 这个“ 1988年5月5日” ...
答案 0 :(得分:7)
以下可用于格式化所需的方式:
DateTimeFormatter.ofPattern("yyyy-MM-dd").format(LocalDate.now()) //2019-02-04
DateTimeFormatter.ofPattern("yyyy-MMM-dd").format(LocalDate.now()) //2019-Feb-04
DateTimeFormatter.ofPattern("yyyy-MMMM-dd").format(LocalDate.now()) //2019-February-04
答案 1 :(得分:2)
尝试:
int month=5;
String name = java.time.Month.values()[month-1].name();
它还有一个getDisplayName方法:
String name = java.time.Month.values()[month-1].getDisplayName(TextStyle.FULL, Locale.getDefault());
或(来自纪念)
String name =java.time.Month.of(month).getDisplayName(TextStyle.FULL, Locale.getDefault());`
(或类似的东西)
答案 2 :(得分:2)
您似乎已经解析了日期。要将LocalDate转换为所需的字符串类型,可以使用以下格式化程序:
LocalDate date = LocalDate.of(2018, 1, 1);
DateTimeFormatter out = new DateTimeFormatterBuilder()
.appendValue(ChronoField.YEAR, 4)
.appendLiteral('-')
.appendText(ChronoField.MONTH_OF_YEAR, TextStyle.SHORT)
.appendLiteral('-')
.appendValue(ChronoField.DAY_OF_MONTH, 2)
.toFormatter(Locale.UK); // or your locale
System.out.println(
out.format(date)
);
答案 3 :(得分:2)
首先,您要像这样解析String
的{{1}}表示形式:
Date
现在,如果解析成功,并且您具有有效的DateTimeFormatter formater = DateTimeFormatter.ofPattern("ddMMyyyy");
LocalDate datum = LocalDate.parse("04022019", formater);
对象,
您可以格式化它:
LocalDate
将打印
String date = datum.format(DateTimeFormatter.ofPattern("yyyy-MMM-dd"));
System.out.println(date);
答案 4 :(得分:1)
LocalDate类还提供了几种获取方法,以提取这些值,如下所示:
LocalDate currentDate = LocalDate.of(2019, 02, 04);
(OR)
LocalDate currentDate = LocalDate.now(); // 2019-02-04
DayOfWeek dayOfWeek = currentDate.getDayOfWeek(); // TUESDAY
int dom = currentDate.getDayOfMonth(); // 04
int doy = currentDate.getDayOfYear(); // 35
Month month = currentDate.getMonth(); // FEBRUARY
int year = currentDate.getYear(); // 2019