java.util.date 到 String 使用 DateTimeFormatter

新手上路,请多包涵

我如何将 java.util.Date 转换为 String 使用

 DateTimeFormatter dateTimeFormatter = DateTimeFormat.forPattern("yyyy-MM-dd'T'HH:mm:ss")

我得到的 Date 对象被传递

DateTime now = new DateTime(date);

原文由 Cork Kochi 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 465
1 个回答

如果您使用的是 Java 8,则首先不应使用 java.util.Date (除非您从您无法控制的库中收到 Date 对象)。

在任何情况下,您都可以将 Date 转换为 java.time.Instant 使用:

 Date date = ...;
Instant instant = date.toInstant();

由于您只对日期和时间感兴趣,没有时区信息(我假设一切都是 UTC),您可以将该时刻转换为 LocalDateTime 对象:

 LocalDateTime ldt = instant.atOffset(ZoneOffset.UTC).toLocalDateTime();

最后你可以打印它:

 DateTimeFormatter fmt = DateTimeFormatter.ofPattern("yyyy-MM-dd'T'HH:mm:ss");
System.out.println(ldt.format(fmt));

或者使用预定义的格式化程序 DateTimeFormatter.ISO_LOCAL_DATE_TIME

 System.out.println(ldt.format(DateTimeFormatter.ISO_LOCAL_DATE_TIME));

请注意,如果您不提供格式化程序,则调用 ldt.toString 以标准 ISO 8601 格式(包括毫秒)提供输出 - 这对您来说可能是可以接受的。

原文由 assylias 发布,翻译遵循 CC BY-SA 3.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题