【问题标题】:Convert java.util.Date to LocalDate将 java.util.Date 转换为 LocalDate
【发布时间】:2019-07-22 10:04:39
【问题描述】:

我必须将 java.util.Date 转换为 LocalDate。我从这里偷了例子:Convert java.util.Date to java.time.LocalDate

但发现了一些奇怪的东西。

当我只使用new LocalDate() 时,我在调试器中看到:

但是当我这样做时: date.toInstant().atZone(ZoneId.systemDefault()).toLocalDate() 然后在调试器中我看到:

所以安装了iLocalMillisyear 等等。这给我以后带来了问题。为什么呢?转换后的详细信息可以与new LocalDate() 中的完全相同吗?

【问题讨论】:

  • Which causes problems for me later ... 什么样的问题?我的意思是,如果两个实例都来自同一个类,那么它们会有什么不同?在第一个LocalDate的情况下,您是否费心一直滚动到属性的底部?
  • 我将此日期发送给第三方,虽然new LocalDate() 没有问题,但当我尝试从 java.util.Date 发送转换后的 LocalDate 时会发生这种情况。此日期没有更多值 - 只有这三个您可以在屏幕截图中看到
  • 第三方用LocalDate做什么,有什么问题?
  • 没有new LocalDate() 这样的东西,所以您的问题可能与您认为自己的做法有关。无论如何,如果您在两种情况下都观察到不同的字段,这意味着您使用的是不同的类,具有不同的导入。
  • 可以涉及不同的LocalDate 类吗?例如,来自 Joda-Time 的一个?这似乎可以解释。

标签: java date localdate java.util.date


【解决方案1】:

第一个快照中的字段与org.joda.time.LocalDate 类的内部结构相匹配。

第二个快照中的字段与java.time.LocalDate 类的内部结构相匹配。

因此,您在代码中混合了两个不同的 LocalDate 类。

【讨论】:

  • @Michu93 还有……不要那样做!不要将 Joda-Timejava.time 混用。两者都是由同一个人建造的,Stephen Colebourne。 Joda-Time 是一个出色的首次尝试,java.time (JSR 310) 是继任者。 java.time 类是重新设计的,借鉴了 Joda-Time 的经验教训,具有相似的概念但不同的实现。
猜你喜欢
  • 2018-07-15
  • 2011-08-01
  • 2020-01-04
  • 2014-02-10
  • 2011-08-29
  • 2019-08-03
  • 2016-02-14
  • 1970-01-01
相关资源
最近更新 更多