月の序第1 /第2 /第3回としてシリアル化LOCALDATEへてDateTimeFormatter

LunaticJape:

私が表示したいLocalDateと:

first day: 1st;
second day: 2nd;
third day: 3rd;
all rest days: Nth.

例えば1980-10-1として1st Oct 1980

私が使用した最初の3日を除くそれをシリアル化することができますよDateTimeFormatter.ofPattern("dth MMM yyyy")最初の3日間は、最初の3日間もシリアライズするフォーマッタを構築する方法を、残りの日とは異なるパターンを持っているので?

アルノールプレボ-CORVELLEC:

ここにあなたが探しているものです。https://docs.oracle.com/javase/8/docs/api/java/time/format/DateTimeFormatterBuilder.html#appendText-java.time.temporal.TemporalField-java.util.Map -

ここexempleは以下のとおりです。

DateTimeFormatterBuilder builder = new DateTimeFormatterBuilder();
Map<Long, String> mapToRoman = new HashMap<>();
mapToRoman.put(1L, "1st");
mapToRoman.put(2L, "2nd");
mapToRoman.put(3L, "3rd");
mapToRoman.put(4L, "4th");
// continue to map all available days in a month
builder.appendText(ChronoField.DAY_OF_MONTH, mapToRoman );
builder.append(DateTimeFormatter.ofPattern(" MM yyyy", Locale.US));
DateTimeFormatter formatter = builder.toFormatter();

おすすめ

転載: http://43.154.161.224:23101/article/api/json?id=212090&siteId=1