2012-04-18 85 views
2

我有甲骨文的時間戳字段在Java的String轉換甲骨文時間戳數據類型的字符串到Java日期

字符串strDate = 「12年12月24日03:30:00,000」; // Oracle的時間戳字段

我需要將其轉換爲Java.util.Date。

請告訴我一種方法來做到這一點。

注:我沒有前兩位爲年份,怎麼能java的理解,這是1912年或2012年等。

+0

你是從java.sql.ResultSet中獲取這個String嗎?如果是這樣,爲什麼不調用ResultSet.getTimestamp()而不是ResultSet.getString()? – 2012-04-18 16:29:35

+0

正確答案已經發布,但您也可以通過'to_timestamp()'選擇Oracle本身,並讓JDBC爲您進行轉換,但是'SimpleDateFormat'是正確的。 – Xailor 2012-04-18 16:37:49

回答

2

你想要的課程是SimpleDateFormat。您將創建一個匹配您的預期輸入的模式,並對其進行解析。下面是一個例子,雖然它可能是在一些地方不正確的(我使用0-23小時,也許你想1-24等)

String strDate = "24.12.12 03:30:00,000"; 
SimpleDateFormat sdf = new SimpleDateFormat("dd.MM.yy HH:mm:ss,SSS"); 
Date date = sdf.parse(strDate); 

Rgarding您的1912年VS 2012的問題,Java將做一些假設,當只有2位數字。具體來說,「爲了解析縮寫年份模式(」y「或」yy「),SimpleDateFormat必須解釋相對於某個世紀的縮寫年份,通過將日期調整爲80年之前和20年之後SimpleDateFormat實例被創建。「