3 回答

TA貢獻2051條經驗 獲得超10個贊
如何將java.util.Date轉換為java.sql.Date?
別。
使用 類而不是遺留類 java.util.Date
&java.sql.Date
使用JDBC 4.2或更高版本。 如果與尚未更新的代碼進行互操作,則轉換為/從java.time轉換為java.time。
PreparedStatement
.
myPreparedStatement.setObject( … , // Specify the ordinal number of which argument in SQL statement. myJavaUtilDate.toInstant() // Convert from legacy class `java.util.Date` (a moment in UTC) to a modern `java .time.Instant` (a moment in UTC). .atZone( ZoneId.of( "Africa/Tunis" ) ) // Adjust from UTC to a particular time zone, to determine a date. Instantiating a `ZonedDateTime`. .toLocalDate() // Extract a date-only `java.time.LocalDate` object from the date-time `ZonedDateTime` object.)
而不是 java.util.Date
兩者都代表了世界協調時的一個時刻。但是現在只有納秒而不是毫秒。 而不是 java.sql.Date
這兩種方法都表示一個日期純值,不包括一天中的某個時間,也沒有一個時區.
細節
LocalDate
java.util.Date
.
java.time
A DATE
java.time.LocalDate
LocalDate todayLocalDate = LocalDate.now( ZoneId.of( "America/Montreal" ) ); // Use proper "continent/region" time zone names; never use 3-4 letter codes like "EST" or "IST".
LocalDate
setObject
PreparedStatement
myPreparedStatement.setObject( 1 , localDate );
ResultSet::getObject
LocalDate
LocalDate localDate = ResultSet.getObject( 1 , LocalDate.class );
轉換為java.sql.Date
java.sql.Date.valueOf(…)
LocalDate
.
java.sql.Date sqlDate = java.sql.Date.valueOf( todayLocalDate );
LocalDate localDate = sqlDate.toLocalDate();
轉換自 java.util.Date
Instant
Instant
java.util.Date
Instant
java.util.Date
java.util.Date.from( Instant )
java.util.Date::toInstant
.
Instant instant = myUtilDate.toInstant();
ZoneId
ZonedDateTime
.
ZoneId zoneId = ZoneId.of ( "America/Montreal" );ZonedDateTime zdt = ZonedDateTime.ofInstant ( instant , zoneId );LocalDate localDate = zdt.toLocalDate();
關于 java.time
java.util.Date
, Calendar
, & SimpleDateFormat
.
java.sql.*
,后來 內置的。 帶有捆綁實現的標準JavaAPI的一部分。 Java 9添加了一些次要的特性和修復。 和 中的大部分java.time功能都被移植到Java 6&7中。 的android包實現的更高版本。 java.time
上課。 對于早期的Android(<26), 項目適應 (上文所述)??匆?/trans>
Interval
, YearWeek
, YearQuarter
添加回答
舉報