2012-05-16 45 views
2

我希望甲骨文時間戳(01-MAY-12 01.00.47.000000000 PM)解析到java.util.Date 我用這個:的Java解析甲骨文時間戳date.util.date

Date dateStart=new SimpleDateFormat("yy-MM-dd HH:mm:ss.S").parse("01-MAY-12 01.00.47.000000000 PM"); 

,但我得到這個錯誤

的java.text .ParseException:無法解析的日期:「2012-5-1.13.0。47. 0」

回答

0

如果您嘗試使用JDBC訪問它,則以@JB Nizet建議D使用getTimestamp()或者如果你只是字符串,需要解析到日期,然後用下面的格式

01-MAY-12 01.00.47.000000000 PM 

yy-MMM-dd hh.mm.ss.SSSSSSSSSS a 
+0

對於具有非零納秒秒的時間戳,例如'01-MAY-12 01.00.47.999999999' PM – Katona

6

你不應該這樣做遵循

嘗試解析任何東西。使用ResultSet.getTimestamp()方法之一,並且您將直接有一個java.sql.Timestamp對象,它將擴展java.util.Date

java.sql.Timestamp ts = myResultSet.getTimestamp(…); 

而且這樣做會有跨數據庫和區域設置的portale的額外優勢。

+0

,或者如果使用JDBC 4.2或更高版本以及Java 8或更高版本,您可能能夠正常工作通過ResultSet :: getObject方法來檢索java.time.Instant。 –

1

「yy-MM-dd」?

「01-MAY-12」

是您的天數真正的 「12」 和你的一年 「01」?

您的錯誤如何顯示「2012-5-1.13.0。47. 0」,這可能是另一種格式的日期?