2014-01-27 194 views
0

我在Oracle數據庫的列與下面的數據類型解析日期的SimpleDateFormat

data type = TIMESTAMP(6) WITH TIME ZONE 

我它導出到CSV,然後使用Java代碼解析CSV。

樣品日期:10-JAN-14 12.48.00.000000000 AM

用於解析日期簡單的日期格式:dd-MMM-yy K.mm.ss.000000000 a

的問題是上述日期被轉換爲​​

把它轉換到下午12.48(它應該是00.48)。

編輯: 如果我用dd-MMM-YY K.hh.ss.000000000一個or dd-MMM-yy K.mm.h.000000000 a我得到 太陽1月12日00:00:00 PST 2014年,這也是錯誤的

有什麼東西錯誤?

+0

你的JVM和Oracle時區是什麼? – user1428716

+0

太平洋標準時間,但這應該無關緊要,因爲我正在讀取csv – user93796

回答

2

如果你的日期字符串有"AM/PM"和你們的時候有範圍的01-12那麼你應該使用h解析小時

您可以嘗試dd-MMM-yy hh.mm.ss.000000000 a作爲輸入格式。如果您看到K的文檔(SimpleDateFormat),則其範圍爲0-11,因此解析失敗。

+0

不起作用。請檢查我的最新編輯 – user93796

+0

dd-MMM-yy K.hh.ss.000000000是一個錯誤的模式,K和h代表小時,您應該只使用其中的一個 – sanbhat

+0

oops.sorry,您的解決方案正常運行。謝謝 – user93796

-2
SimpleDateFormat sdf = new SimpleDateFormat("dd-MM-yyyy HH:mm:ss"); 

我sugest使用Locale.getDefault( )或任何其他值。

+0

這不會起作用。 – user93796

+0

爲什麼不能?不明白爲什麼這不會工作? –

+0

如果您使用此模式,則會丟失信息 – user1428716

相關問題