我想將此字串“2022-01-13 14:33:07.996”轉換為 java sql 日期。我已閱讀答案,并將字串轉換為 java util date,然后轉換為 java sql date。我只是不知道如何以 java sql 日期格式獲取完整日期
String dateStart = "2022-01-13 14:33:07.996";
DateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd hh:mm:ss");
Date date1 = dateFormat.parse(dateStart);
java.util.Date utilDate = date1;
java.sql.Date sqlDate = new java.sql.Date(date1.getTime());
System.out.println(sqlDate);
在輸出我得到這個
2022-01-13
但我想要這樣2022-01-13 14:33:07.996的 java sql 日期格式
uj5u.com熱心網友回復:
tl;博士
要將日期時間值寫入資料庫,請使用適當的物件,而不是文本。對于僅日期值,請使用LocalDate.
myPreparedStatement
.setObject(
… ,
LocalDateTime
.parse( "2022-01-13 14:33:07.996" )
.toLocalDate()
)
避免遺留的日期時間類
您正在使用糟糕的日期時間類,這些類在幾年前被JSR 310 中定義的現代java.time類所取代。
僅限日期
你說:
2022-01-13 14:33:07.996 java sql 日期格式
這是一個矛盾。java.sql.Date物件表示僅日期,而不是帶有時間的日期。
java.time.LocalDateTime
將您的輸入字串決議為 a LocalDateTime,因為它缺少任何時區或偏移量指示符。
LocalDateTime ldt = LocalDateTime.parse( "2022-01-13 14:33:07.996" ) ;
java.time.LocalDate
提取日期部分。
LocalDate ld = ldt.toLocalDate() ;
資料庫訪問
寫入資料庫。
myPreparedStatement.setObject( … , ld ) ;
從資料庫中檢索。
LocalDate ld = myResultSet.getObject( … , LocalDate.class ) ;
這些問題已經在 Stack Overflow 上討論過很多次了。搜索以了解更多資訊。
轉載請註明出處,本文鏈接:https://www.uj5u.com/qukuanlian/412564.html
標籤:
