gpt4 book ai didi

java - Java 8 中的日期反序列化 Jackson 仍然会发生 2038 年问题

转载 作者:行者123 更新时间:2023-11-29 08:34:56 26 4
gpt4 key购买 nike

<分区>

简单地说,我有以下类来获取从远程响应接收到的 JSON 主体,以反序列化为 CreditCardDTOexp_date 中收到的日期,例如 8/2010 的“0820” ,以及 2/2040 的“0240”:

import com.fasterxml.jackson.annotation.JsonFormat;
import com.fasterxml.jackson.annotation.JsonProperty;

import java.util.Date;

@JsonInclude(JsonInclude.Include.NON_EMPTY)
@JsonPropertyOrder(alphabetic = true)
public class CreditCardDTO {
private String brand;
private Date expirationDate;

@JsonProperty("brand")
public String getBrand() {
return brand;
}

@JsonProperty("credit_card_type")
public CreditCardDTO setBrand(String brand) {
this.brand = brand;
return this;
}

@JsonFormat(shape = JsonFormat.Shape.STRING, pattern = "yyyy-MM-dd'T'HH:mm:ss.SSSZ")
@JsonProperty("expirationDate")
public Date getExpirationDate() {
return expirationDate;
}

@JsonFormat(pattern = "MMyy")
@JsonProperty("exp_date")
public CreditCardDTO setExpirationDate(Date expirationDate) {
System.out.println(expirationDate);
this.expirationDate = expirationDate;
return this;
}
}

问题如果是2038年之前就可以了,但是一旦数据到了那个关键日期之后,还是会出现,数据回到1941年,我搜索了一下这个问题,发现应该不会出现在 Java 8 中:Why should a Java programmer care about year 2038 bug? ,所以我想知道这里有什么问题!

Jackson 版本 2.8.0,肯定是 Java 8。

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com