从月份编号到月份名称的时间?

时间:2019-02-04 13:18:16

标签: java

我只需要将月号更改为月名 ...

我尝试放置三个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日” ...

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