【问题标题】:DateTimeFormatter to DateFormat conversionDateTimeFormatter 到 DateFormat 的转换
【发布时间】:2016-09-21 17:43:36
【问题描述】:

如何将 DateTimeFormatter 转换为 DateFormat ?我想将 DateTimeFormatter 转换为 DateFormat 吗?有可能吗?

我有一个 DateTimeFormatter 对象,我想将它传递给一个参数只接受 DateFormat 的方法。

【问题讨论】:

  • 对于什么方法你需要DateFormat?也许您应该找出参数为 DateTimeFormatter 的适当方法?
  • 您可以使用以下命令将 DateTimeFormatter 转换为 java.text.Format:java.text.Format oldformat = dateTimeFormatter.toFormat();
  • @ben 你能提供课堂文档的链接吗?我在 DateFormat 或 SimpleDateFormat 上都没有看到这样的方法。
  • 参见此处:docs.oracle.com/javase/8/docs/api/java/time/format/…:“某些应用程序可能需要使用较旧的 java.text.Format 类进行格式化。toFormat() 方法返回 java.text.Format 的实现。”

标签: java date


【解决方案1】:

没有从java.time.format.DateTimeFormatter 到旧格式化程序类的反向转换。

较新的 java.time 类旨在取代旧的。它们不打算混合或互操作。旧的日期时间类已被证明设计不佳、令人困惑且麻烦。

前进,而不是后退

与最早的 Java 版本捆绑在一起的旧日期时间类现在是遗留的。应避免使用 java.util.Date/.Calendar 和 java.text.DateFormat/.SimpleDateFormat 等类。

这些旧类已被 Java 8 及更高版本中内置的 java.time 框架所取代。大部分功能在 ThreeTen-Backport 项目中向后移植到 Java 6 和 7,并在 ThreeTenABP 项目中进一步适应 Android。

改为前进。将您的旧日期时间对象转换为现代 java.time 类。新方法已添加到旧类中,以促进数据的转换。

如果您有 java.util.Date,请致电 toInstant()。如果您有 java.util.Calendar 对象,请转换为 ZonedDateTime。

要开始使用,请参阅 my Question 和 my Answer with nifty diagram of types。

【讨论】:

猜你喜欢
  • 2019-05-18
  • 1970-01-01
  • 2018-05-16
  • 1970-01-01
  • 1970-01-01
  • 2016-09-12
  • 2011-12-22
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多