我正在尝试使用特定格式将Instant格式化为String.根据
Format Instant to String的问题,我这样做 –
DateTimeFormatter formatter = DateTimeFormatter .ofPattern("YYYY-MM-DD'T'hh:mm'Z'") .withZone(ZoneOffset.UTC); // Fails for current time with error 'Field DayOfYear cannot be printed as the // value 148 exceeds the maximum print width of 2' LocalDateTime .ofInstant(Instant.now(),ZoneOffset.UTC) .format(DATE_TIME_FORMATTER); // But works for smaller values of Instant LocalDateTime .ofInstant(Instant.ofEpochMilli(604800000),ZoneOffset.UTC) .format(DATE_TIME_FORMATTER));
有关为什么会发生这种情况的任何建议?
谢谢
解决方法
模式YYYY-MM-DD’T’hh:mm’Z’错了:
> YYYY – 以周为基础的年份错误:使用uuuu年份
> MM – 一年中的月份
> DD – 每年错误:使用dd日期
> hh – 上午时钟小时(1-12)没有上午/下午你可能想要HH小时(0-23)
>毫米 – 分钟
这很奇怪,因为你甚至引用了一个具有正确模式字符的链接.当然除非你认为大小写与小写无关,但如果是这样,你认为MM(月份)与mm(分钟)的工作情况如何?
您可能想要实际阅读documentation.