我在獲取記錄時遇到問題,從資料庫獲取后時間戳值發生了變化。
在我的 Oracle DB 中,列值為“19-OCT-22 02.15.00.000000000 AM”,但在獲取后顯示為“2022.10.19 00:15:00”
@JsonFormat(shape = JsonFormat.Shape.STRING, pattern = "yyyy.MM.dd HH:mm:ss")
private Timestamp startDate;
我正在使用帶有 springboot 的 JPA 存盤庫來獲取記錄。
uj5u.com熱心網友回復:
它看起來像一個時區問題。請分享您的 JPA 映射和“創建表”腳本。Java Timezone 資料型別不接受時區,可能在您的資料庫中,該值與時區一起存盤。
Oracle BD 中的一些資料型別示例:
TIMESTAMP:不存盤任何時區資訊。如果您輸入帶有時區的時間戳,則時區資訊將被截斷并丟失。
TIMESTAMP WITH TIME ZONE:在您將時間戳插入資料庫時??,將時間戳與時區資訊(即作為命名區域或作為 UTC-Offset)一起存盤。
TIMESTAMP WITH LOCAL TIME ZONE:時間戳存盤為 DBTIMEZONE(推薦,通常是 UTC)。時間戳始終且僅顯示在當前用戶會話 SESSIONTIMEZONE 中。因此它不顯示任何時區資訊,因為根據定義,這始終是您的本地時區。
有了有關您的映射和表格的更多資訊,我們可以為您提供更好的幫助。
uj5u.com熱心網友回復:
LocalDateTime 現在作業了。
@Column(name = "STARTDATE")
@JsonFormat(shape = JsonFormat.Shape.STRING, pattern = "yyyy.MM.dd HH:mm:ss")
private LocalDateTime startDate;
DateTimeFormatter format = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss");
LocalDateTime timestamp = LocalDateTime.parse(fromDate, format);
List<JobName> list = repository.findJobNameBylastTime(timestamp);
轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/524362.html
