Java строка в дату конвертировать ноль, запись в базу данных SQL проблема - PullRequest
1 голос
/ 13 января 2011

У меня есть Date, который был преобразован в String для передачи на сервер Java Socket.Примером этого значения является 06:19:18p.m. 13/01/2011.

На сервере Socket я пытаюсь преобразовать его обратно в значение Date перед записью в таблицу базы данных SQL, но преобразованное значениеNULL.Я также попытался записать значение в базу данных SQL как исходное String, но оно не записывает, если в нем нет символов двоеточия, полной остановки или косой черты.

Есть ли какие-либокак я могу обойти это?Мне жаль, что я не могу просмотреть или опубликовать трассировку стека, поскольку у меня нет доступа администратора к серверу, на котором я запускаю свой файл Jar.

Мой код для преобразования Stringэто:

Date date = null;
SimpleDateFormat sdf = new SimpleDateFormat("hh:mm:ssa dd/MM/yyyy");
try { 
    date = sdf.parse(timestamp);
} 
catch (ParseException e) {
    e.printStackTrace();
}

Ответы [ 3 ]

2 голосов
/ 14 января 2011

«a» в вашем шаблоне SimpleDateFormat может анализировать только «AM» или «PM», но не «pm».Просто измените это, и ваш анализ будет успешным.

2 голосов
/ 13 января 2011

Я не уверен, почему вы не можете правильно проанализировать, но вы все об этом думаете. Вместо сохранения String в базе данных вы должны создать столбец типа TIMESTAMP или DATE. Затем вы можете использовать getDate () из JDBC, чтобы просто получить объект даты.

0 голосов
/ 13 января 2011

Это может быть просто опечатка, но ваш пример "06:19:18 ppm. 13/012011" не соответствует вашему простому формату даты, поскольку он ожидает две косые черты в вашей дате.

Это будеточень полезно найти способ получить трек стека или опробовать этот код на отдельных данных в другом месте, чтобы убедиться, что вы не просто получаете неверные данные.

...