2011-09-20 112 views
16

我正在使用ResultSet.getTimestamp()從數據庫中檢索時間戳對象,但我想要一種簡單的方法以MM/DD/YYYY的格式獲取日期,並且時間格式爲HH:MM xx。我正在修補,它看起來好像我可以通過在Java中使用Date和/或DateTime對象來做到這一點。這是最好的方式,或者我甚至需要轉換時間戳來完成這個?任何建議都會有幫助。如何將Timestamp轉換爲Date或DateTime對象?

.... 
while(resultSet.next()) { 
    Timestamp dtStart = resultSet.getTimestamp("dtStart"); 
    Timestamp dtEnd = resultSet.getTimestamp("dtEnd"); 

    // I would like to then have the date and time 
    // converted into the formats mentioned... 
    .... 
} 
.... 
+0

沒有'DateTime'類是通過Java 9. –

回答

14

java.sql.Timestampjava.util.Date一個子類。所以,只是上傳它。

Date dtStart = resultSet.getTimestamp("dtStart"); 
Date dtEnd = resultSet.getTimestamp("dtEnd"); 

使用SimpleDateFormat和創建喬達DateTime應該從這個角度上簡單。

+11

如果jodatime將是捆綁與Java 1使用了'DateTime dtStartDT = new DateTime(resultSet.getTimestamp(「dtStart」));'是所有需要的。 – fvu

20
import java.sql.Timestamp; 
import java.text.SimpleDateFormat; 
import java.util.Date; 

public class DateTest { 

    public static void main(String[] args) { 
     Timestamp timestamp = new Timestamp(System.currentTimeMillis()); 
     Date date = new Date(timestamp.getTime()); 

     // S is the millisecond 
     SimpleDateFormat simpleDateFormat = new SimpleDateFormat("MM/dd/yyyy' 'HH:mm:ss:S"); 

     System.out.println(simpleDateFormat.format(timestamp)); 
     System.out.println(simpleDateFormat.format(date)); 
    } 
} 
+0

也許「MM/dd/yyyy」HH:mm:ss:S「更好? – user1768976

+0

當然,分鐘是「毫米」,我糾正了代碼示例。 – Christopher

0

您也可以從時間戳獲得DateTime對象,包括當前夏令時間:

public DateTime getDateTimeFromTimestamp(Long value) { 
    TimeZone timeZone = TimeZone.getDefault(); 
    long offset = timeZone.getOffset(value); 
    if (offset < 0) { 
     value -= offset; 
    } else { 
     value += offset; 
    } 
    return new DateTime(value); 
}  
+0

這是什麼'DateTime'類?沒有這樣的類與Java捆綁在一起。你有沒有把Joda-Time加入你的項目?如果是這樣,不需要將像Calendar一樣的麻煩的舊式日期時間課程與Joda-Time混合在一起,只需堅持Joda-Time即可。此外,Joda-Time項目現在處於維護模式,並建議遷移到現代java.time類。 java.time類取代了舊的遺留日期 - 時間類('Date','Calendar'等)和Joda-Time。 –

+0

因爲OP詢問如何將時間戳轉換爲'asdas' – Vettel1993

+0

DateTime是Joda-Time的類。 OP詢問如何將時間戳轉換爲Date或DateTime。你說得對,這裏不需要Calendar類。 – Vettel1993

相關問題