首页 > 解决方案 > Java 日期与收到的值相差一天

问题描述

我在 PostMan 中收到包含日期的回复2013-01-30

在我的 Java JSF 应用程序中,我使用Date将此值存储在我的响应模型类中,例如:

@XmlRootElement(name="car")
@XmlAccessorType(XmlAccessType.FIELD)
public class CarResponseModel {
   protected Date receivedDate;
   ...
}

但是,当它获得的价值是一天休假时,例如Tue Jan 29 16:00:00 PST 2013.

因此,由于某种原因,1 月 30 日变成了 1 月 29 日。

我正在寻求解决此问题,以便我receivedDate持有正确的日期2013-01-30

由于遗留代码和使用的 JSF 版本不兼容,我无法使用LocalDate 。

标签: javadate

解决方案


您会在 UTC 时间 2013-01-30 开始时看到正确的午夜时间:2013-01-30T00:00:00Z 和 2013-01-29T00:16:00-08:00 代表同一时刻及时。不幸的Date是,在您当地的时区向您展示了这一点。即使您不能LocalDate在那个确切的位置使用,我建议您将其转换Date为 a Instant,然后LocalDate使用 UTC 时区与 a 日期。


推荐阅读