【发布时间】:2017-09-04 11:47:52
【问题描述】:
我希望这两个格式化程序是等价的:
DateTimeFormatter fromBuilder = new DateTimeFormatterBuilder()
.appendValue(IsoFields.WEEK_BASED_YEAR, 4)
.appendLiteral('-')
.appendValue(IsoFields.WEEK_OF_WEEK_BASED_YEAR, 2)
.toFormatter();
DateTimeFormatter fromPattern = DateTimeFormatter.ofPattern("YYYY-ww");
但它们给出的结果不同:
LocalDate date = LocalDate.of(2017, 1, 1);
System.out.printf("from builder: %s%n", fromBuilder.format(date)); // prints 'from builder: 2016-52'
System.out.printf("from pattern: %s%n", fromPattern.format(date)); // prints 'from pattern: 2017-01'
我错过了什么?
【问题讨论】:
-
您的
fromPattern-formatter 不是基于 ISO,而是您的默认语言环境设置为第一天和第一日历周的最短天数。
标签: java date-formatting java-time week-number