mirror of
https://github.com/openjdk/jdk.git
synced 2025-08-27 14:54:52 +02:00
8210633: Cannot parse JapaneseDate string with DateTimeFormatterBuilder Mapped-values
Reviewed-by: scolebourne, rriggs
This commit is contained in:
parent
9d95755584
commit
ff3f48d69f
2 changed files with 24 additions and 7 deletions
|
@ -802,7 +802,13 @@ public final class DateTimeFormatterBuilder {
|
||||||
return store.getText(value, style);
|
return store.getText(value, style);
|
||||||
}
|
}
|
||||||
@Override
|
@Override
|
||||||
public Iterator<Entry<String, Long>> getTextIterator(TemporalField field, TextStyle style, Locale locale) {
|
public Iterator<Entry<String, Long>> getTextIterator(Chronology chrono,
|
||||||
|
TemporalField field, TextStyle style, Locale locale) {
|
||||||
|
return store.getTextIterator(style);
|
||||||
|
}
|
||||||
|
@Override
|
||||||
|
public Iterator<Entry<String, Long>> getTextIterator(TemporalField field,
|
||||||
|
TextStyle style, Locale locale) {
|
||||||
return store.getTextIterator(style);
|
return store.getTextIterator(style);
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
|
@ -74,9 +74,11 @@ import java.time.chrono.ThaiBuddhistChronology;
|
||||||
import java.time.format.DateTimeFormatter;
|
import java.time.format.DateTimeFormatter;
|
||||||
import java.time.format.DateTimeFormatterBuilder;
|
import java.time.format.DateTimeFormatterBuilder;
|
||||||
import java.time.format.FormatStyle;
|
import java.time.format.FormatStyle;
|
||||||
|
import java.time.format.ResolverStyle;
|
||||||
import java.time.LocalDate;
|
import java.time.LocalDate;
|
||||||
import java.time.temporal.ChronoField;
|
import java.time.temporal.ChronoField;
|
||||||
import java.time.temporal.Temporal;
|
import java.time.temporal.Temporal;
|
||||||
|
import java.time.temporal.TemporalAccessor;
|
||||||
|
|
||||||
import java.util.HashMap;
|
import java.util.HashMap;
|
||||||
import java.util.Locale;
|
import java.util.Locale;
|
||||||
|
@ -133,13 +135,22 @@ public class TestDateTimeFormatterBuilderWithLocale {
|
||||||
|
|
||||||
@Test(dataProvider="mapTextLookup")
|
@Test(dataProvider="mapTextLookup")
|
||||||
public void test_appendText_mapTextLookup(ChronoLocalDate date, Locale locale) {
|
public void test_appendText_mapTextLookup(ChronoLocalDate date, Locale locale) {
|
||||||
final String new1st = "1st";
|
final String firstYear = "firstYear";
|
||||||
Map<Long, String> yearMap = new HashMap<>();
|
final String firstMonth = "firstMonth";
|
||||||
yearMap.put(1L, new1st);
|
final String firstYearMonth = firstYear + firstMonth;
|
||||||
builder.appendText(ChronoField.YEAR_OF_ERA, yearMap);
|
final long first = 1L;
|
||||||
|
|
||||||
String actual = date.format(builder.toFormatter(locale));
|
DateTimeFormatter formatter = builder
|
||||||
assertEquals(actual, new1st);
|
.appendText(ChronoField.YEAR_OF_ERA, Map.of(first, firstYear))
|
||||||
|
.appendText(ChronoField.MONTH_OF_YEAR, Map.of(first, firstMonth))
|
||||||
|
.toFormatter(locale)
|
||||||
|
.withResolverStyle(ResolverStyle.STRICT);
|
||||||
|
|
||||||
|
assertEquals(date.format(formatter), firstYearMonth);
|
||||||
|
|
||||||
|
TemporalAccessor ta = formatter.parse(firstYearMonth);
|
||||||
|
assertEquals(ta.getLong(ChronoField.YEAR_OF_ERA), first);
|
||||||
|
assertEquals(ta.getLong(ChronoField.MONTH_OF_YEAR), first);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue