java中獲取數(shù)據(jù)庫(kù)時(shí)間丟失分秒問題

在java中常用的時(shí)間格式類型為:java.util.Date? 和java.sql.Date。

本文主要講解三點(diǎn):

1.java.util.Date與java.sql.Date的區(qū)別。

2.時(shí)間轉(zhuǎn)換的方式。

3.時(shí)間轉(zhuǎn)換過程中需要注意的地方。


第一點(diǎn):1.java.util.Date,java.sql.Datejava.sql.Time的區(qū)別。

java.util.Date 是 java.sql.Date 的父類

java.util.Date是不能直接插入數(shù)據(jù)庫(kù)中的,雖然它包含了日期和時(shí)分秒。

java.sql.Date可以直接插入數(shù)據(jù)庫(kù),但是它只有日期而沒有時(shí)間;

java.sql.Time可以直接插入數(shù)據(jù)庫(kù),但是它只有時(shí)間,沒有日期;

java.util.Date 就是在除了SQL語(yǔ)句的情況下面使用,我們通常格式化或者得到當(dāng)前時(shí)間都是用他。java.sql.Date 是針對(duì)SQL語(yǔ)句使用的,一般在讀寫數(shù)據(jù)庫(kù)的時(shí)候用他,因?yàn)镻reparedStament的setDate()的第2參數(shù)和ResultSet的getDate()方法的第2個(gè)參數(shù)都是java.sql.Date


第二點(diǎn):2.時(shí)間轉(zhuǎn)換方式

方式一:util.Date轉(zhuǎn)為sql.Date? [將時(shí)間數(shù)據(jù)插入導(dǎo)數(shù)據(jù)庫(kù)中]

java.sql.Date date=new java.sql.Date();

java.util.Date d=new java.util.Date (date.getTime());



方式二:【java.util.Date轉(zhuǎn)化為java.sql.Timestamp】[獲取時(shí)間的時(shí)分秒丟失問題]

前景描述:

如若要取得時(shí)分秒,可以用Date的子類TimestampJava在向數(shù)據(jù)庫(kù)中插入時(shí)間的時(shí)候,常常遇到時(shí)、分、秒丟失的情況,這種情況的發(fā)生一般是由于時(shí)間日期對(duì)象使用錯(cuò)誤造成的。

如果我們要插入日期和時(shí)間,那么就要想辦法來使用java.sql.Timestamp來向數(shù)據(jù)庫(kù)插入。java.sql.Timestamp可包含了日期和到毫秒的時(shí)間值,在程序中,我們常常是使用的java.util.Date,所以就要有解決的方法來實(shí)現(xiàn)。

有如下方法將java.util.Date轉(zhuǎn)化為java.sql.Timestamp

public java.sql.Timestamp getTimestamp(Date date) {

return new java.sql.Timestamp(date.getTime());

}

這樣,我們可以將我們使用的java.util.Date轉(zhuǎn)化,然后插入數(shù)據(jù)庫(kù),便可以解決時(shí)、分、秒丟失的問題。


第三點(diǎn):時(shí)間轉(zhuǎn)換過程中需要注意的地方。

注意點(diǎn):[java中Date無法獲取數(shù)據(jù)庫(kù)時(shí)分秒的問題]

舉例

數(shù)據(jù)庫(kù)中關(guān)于時(shí)間的分秒值都有,但是通過rs.getDate(“字段名”)取出的時(shí)間只有年月日,丟失了具體的時(shí)間。

知識(shí)點(diǎn):java.sql.Date是只支持日期的,不支持時(shí)分秒。

而java.util.Date是有時(shí)間部分的。

在sql操作的時(shí)候,resultSet中g(shù)etDate()默認(rèn)的類型是java.sql.Date,所以獲取的Date類型是沒有時(shí)間部分的,setDate(rs.getTimestamp('time')),使用rs.getTimestamp()能夠很好的解決這個(gè)問題,記住setDate()的Date一定要是java.util.Date類型

解決方法:rs.getTimestamp('time')

參考鏈接:

java中Date無法獲取數(shù)據(jù)庫(kù)時(shí)分秒的問題

java.util.Date和java.sql.Date的區(qū)別和相互轉(zhuǎn)化

解決數(shù)據(jù)庫(kù)中插入時(shí)間丟失時(shí)分秒

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

推薦閱讀更多精彩內(nèi)容

  • 1. Java基礎(chǔ)部分 基礎(chǔ)部分的順序:基本語(yǔ)法,類相關(guān)的語(yǔ)法,內(nèi)部類的語(yǔ)法,繼承相關(guān)的語(yǔ)法,異常的語(yǔ)法,線程的語(yǔ)...
    子非魚_t_閱讀 31,740評(píng)論 18 399
  • 一. Java基礎(chǔ)部分.................................................
    wy_sure閱讀 3,832評(píng)論 0 11
  • Spring Cloud為開發(fā)人員提供了快速構(gòu)建分布式系統(tǒng)中一些常見模式的工具(例如配置管理,服務(wù)發(fā)現(xiàn),斷路器,智...
    卡卡羅2017閱讀 134,837評(píng)論 18 139
  • 這些文字,請(qǐng)你心平氣和的看下去。 你現(xiàn)在的情況,非常令家人擔(dān)心。你遇到喜歡的人,在談戀愛是件喜事,我和爸媽都替你高...
    邁騰330閱讀 274評(píng)論 0 0
  • 有一個(gè)人 想脫離一個(gè)人 也許是一個(gè)人不喜歡一個(gè)人了吧 偏偏這時(shí)候一個(gè)人發(fā)現(xiàn)自己得了病 它不知道怎么來 于是他們又聯(lián)...
    amadaan閱讀 246評(píng)論 0 0