2014-10-16 5 views
2

Я использую SimpleDateFormat, чтобы преобразовать строку даты в java.sql.date.
При преобразовании я получаю проблему, т. Е. Год добавляется автоматически.
Код:Строка date to SQL date добавление лет

String d="2012-12-04T08:48:00"; 
SimpleDateFormat formatter = new SimpleDateFormat("yyyy-mm-dd'T'HH:MM:SS"); 
java.util.Date date = null; 
date = formatter.parse(d); 
System.out.println("UTIL DATE: "+date); 
System.out.println("SQL DATE: "+new Date(date.getTime())); 

Выход:

UTIL DATE: Fri Dec 04 08:12:00 IST 2015 
SQL DATE: 2015-12-04  

я должен был получить 2012 год в дате, но суммированием 3-х лет, что-нибудь неправильно в моем коде?
Спасибо заранее.

ответ

2

mm представляет минуты, MM используется, чтобы соответствовать месяцев - своп шаблоны полей

SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss"); 
+1

Ровно! И три года исчисляются с месячного значения «48», что составляет 3 * 12 месяцев слишком много (=> 3 года). – Seelenvirtuose

+0

В вашем решении есть ошибка. Время должно ': mm: ss' Думаю – Jens

+0

@Reimeus Я отредактировал ваше предложение, так как вы также упустили некоторые образцы полей (минуты и секунды). – Seelenvirtuose

1

Изменение простой формат даты в поле ниже код:

SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss"); 

Здесь mm находится в нескольких минутах и ​​MM для монахов.