你可以使用
java.time.format.DateTimeFormatterBuilder
WeekFields.ISO
:
DateTimeFormatter formatter = new DateTimeFormatterBuilder()
// append week year
.appendValue(WeekFields.ISO.weekBasedYear(), 4)
// separator
.appendLiteral('-')
// append week of week year field
.appendValue(WeekFields.ISO.weekOfWeekBasedYear(), 2)
// create formatter
.toFormatter().withZone(ZoneOffset.UTC);
而不是创造一个新的
WeekFields
实例(带
WeekFields.of(locale)
),只需使用
相反:
System.out.format("First day of week : %s%n", WeekFields.ISO.getFirstDayOfWeek());
System.out.format("Min days in 1st week : %s%n", WeekFields.ISO.getMinimalDaysInFirstWeek());
Instant instant = Instant.parse("1998-12-31T00:00:00Z");
System.out.println(formatter.format(instant));
第1周的最小天数:4
1998-53
formatter = formatter.withLocale(Locale.GERMANY);
或:
formatter = formatter.withLocale(Locale.ENGLISH);
输出保持不变。