我收到一个json中的日期,我将它插入到一个oracle 10g数据库中,为此我使用Spring Boot和Jpa,在保存到数据库之前我使用映射器获取实体和日期的数据类型该实体是OffsetDateTime,问题是保存日期少了一天,例如我收到“20210711”,数据库保存2021-07-10,我该如何纠正错误?谢谢您的帮助。
实体中的字段
@Column(name = "posted_date")
private OffsetDateTime postedDate
常数
public static final String DEFAULT_TIME = "T00:00:00.00";
public static final String TIME_ZONE_NLD = "+02:00";
ZoneOffset ZONE_OFF_SET_ACTIVATION_DATE = ZoneOffset.of(TIME_ZONE_NLD);
映射器
@Mapping(target = "postedDate", source = "Dto", qualifiedByName = "postedDate")
InvoiceTemp toEntity(Dto dto);
@Named("postedDate")
default OffsetDateTime mapPostedDate(Dto dto){
DateTimeFormatter formatter =
DateTimeFormatter.ofPattern("yyyyMMdd'T'HH:mm:ss.SS");
LocalDateTime dateTime = LocalDateTime.parse(dto.getPostedDate()+DEFAULT_TIME,
formatter);
return dateTime.atOffset(ZONE_OFF_SET_ACTIVATION_DATE);