在LocalDate实例

时间:2016-07-19 14:27:26

标签: java-8 java-time

我在IDE中的所有异常中打开了中断,并且在每次调用UnsupportedTemporalTypeException时都会看到localDateInstance.format(DateTimeFormatter.BASIC_ISO_DATE)

这是正常行为还是这个错误?

堆栈跟踪采用get0 LocalDate方法,传递的参数为OFFSET_SECONDS

进一步看,我看到BASIC_ISO_DATE的定义如下:

    BASIC_ISO_DATE = new DateTimeFormatterBuilder()
            .parseCaseInsensitive()
            .appendValue(YEAR, 4)
            .appendValue(MONTH_OF_YEAR, 2)
            .appendValue(DAY_OF_MONTH, 2)
            .optionalStart()
            .appendOffset("+HHMMss", "Z")
            .toFormatter(ResolverStyle.STRICT, IsoChronology.INSTANCE);

违规位看起来像.optionalStart()部分,时区偏移。

我认为这是标准库的草率设计/实现。可选的格式化部分不应该导致抛出和捕获异常,从而降低性能,对于库的用户来说是不知道的。

0 个答案:

没有答案