2014-02-10 3 views
0

я следующий код:Дата преобразование не работает правильно

DateFormat dateFormat = new SimpleDateFormat(SQL_SERVER_DATE_FORMAT); 
Date startDate; 

startDate = (Date) dateFormat.parse(some_string_represents_date_received_from_sql_server); 

где SQL_SERVER_DATE_FORMAT является:

public static final String SQL_SERVER_DATE_FORMAT = "yyyy-mm-dd'T'HH:mm:ss"; 

По какой-то причине, когда some_string_represents_date_received_from_sql_server = '2014-02-05T12:15:59.417' я получаю это неправильно преобразован в 1388916959000 клещи, которые означают Sun Jan 05 12:15:59 GMT+02:00 2014.

и когда я some_string_represents_date_received_from_sql_server = '2014-01-30T16:30:00.437' я получаю это правильно преобразуется в 1391092200000 клещами, которые означают Thu Jan 30 16:30:00 GMT+02:00 2014.

Любые идеи?

+3

'public static final String SQL_SERVER_DATE_FORMAT =" yyyy-MM-dd'THH: mm: ss ";' –

ответ

5

Попробуйте DateFormat для разбора, как public static final String SQL_SERVER_DATE_FORMAT = "yyyy-MM-dd'T'HH:mm:ss"; вместо public static final String SQL_SERVER_DATE_FORMAT = "yyyy-mm-dd'T'HH:mm:ss";

+0

Человек, я застрял на нем часами. Спасибо вам и Трушиту, и Арту. – dsb

5

В вашем формате даты вы указываете минут (мм) вместо месяцев (ММ).

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