2016-08-02 5 views
0

Вот моя строка: 2016-07-29T17: 15: 46.838Z
Я хочу вставить это в столбец MySQL DATETIME (6).
Преобразование даты времени Joda в Java.Sql.TimeStamp для INSERT

Вот метод, который я создал, чтобы преобразовать строку в 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 Insert логика ...

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" имеет неправильный формат на "-07-29T17: 15: 46.432Z"

+0

Формат, передаваемый вашим методом, отличается от формата, который он ожидает. Я не знаком с Java, в частности, но я подозреваю, что что-то вроде этого было бы более подходящим 'DateTimeFormat.forPattern (« yyyy-MM-ddTHH: mm: ss.SSSZ »)' _ (возможно, некоторые escape-последовательности для буквального T и Z.) _ – Uueerdo

ответ

0

Отклонение комментария Ууэрдо. Следующее сделало трюк

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

Спасибо, сэр.

Смежные вопросы