java – 使用特定模式将Instant格式化为String

前端之家收集整理的这篇文章主要介绍了java – 使用特定模式将Instant格式化为String前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我正在尝试使用特定格式将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.

猜你在找的Java相关文章