【发布时间】:2020-10-25 19:44:20
【问题描述】:
来自DateTimeFormatterjavadoc:
如果字母数少于四个(但不是两个),则符号 根据 SignStyle.NORMAL 仅输出负年份。否则, 如果超出焊盘宽度,则输出符号,根据 SignStyle.EXCEEDS_PAD。
据我了解,如果不超过焊盘宽度且字母数为四个,则格式化期间不应打印减号(负年份)。
所以我写了这样一个sn-p的代码(认为我不能使用'y',因为那样年份总是积极的):
var negativeDate = LocalDate.now().minus(2021, ChronoUnit.YEARS);
var formatter = DateTimeFormatter.ofPattern("ppppuuuu");
var text = negativeDate.format(formatter);
System.out.println("formatted string: " + text);
此代码抛出DateTimeException:“无法打印,因为 5 个字符的输出超过了 4 的填充宽度”。
所以我的问题基本上是如何从 javadoc 工作中看到最后一句话。
【问题讨论】:
标签: java datetime-format java-time datetimeformatter