2016-08-02 59 views
0

這是我的字符串:2016-07-29T17:15:46.838Z
我想將其插入MySQL DATETIME(6)列。
將Joda日期時間字符串轉換爲用於INSERT的Java.Sql.TimeStamp

這裏是我創建的字符串轉換成的java.sql.Timestamp

private java.sql.Timestamp convertToJavaSqlTimeStamp(String p_dateTimeString) { 
DateTimeFormatter formatter = DateTimeFormat.forPattern("yyyy/MM/dd HH:mm:ss:SSS"); 
java.sql.Timestamp _timeStamp = new java.sql.Timestamp(formatter.parseDateTime(p_dateTimeString).getMillis()); 
return _timeStamp; 
} 

的方法。


SQL插入邏輯...

PreparedStatement preparedStatement ; 
preparedStatement = _mysqlConn.prepareStatement("INSERT INTO myTable (my_date_time) VALUES (?)"); 
preparedStatement.setTimestamp(1, convertJodaDateTimeStringToJavaSqlTimeStamp("2016-07-29T17:15:46.838Z")); 
preparedStatement.executeUpdate(); 

錯誤消息:無效格式: 「2016-07-29T17:15:46.432Z」 在被畸形 「:15:-07-29T17 46.432Z」

+0

您傳遞方法的格式看起來與它所期望的格式不同。我特別不熟悉Java,但是我會懷疑像這樣的東西會更合適'DateTimeFormat.forPattern(「yyyy-MM-ddTHH:mm:ss.SSSZ」)'_(可能有一些字面T的轉義和Z。)_ – Uueerdo

回答

0

關閉Uueerdo的評論。訣竅如下

DateTimeFormat.forPattern("yyyy-MM-dd'T'HH:mm:ss.SSSZ") 

謝謝先生。

相關問題