2015-06-02 5 views
-2

Пробовал форматирование нескольких дат с помощью SimpleDateFormat APISimpleDateFormat API отображает неверную дату

String[] dates={"18-01-2015","9-02-2015","21-03-2015"}; 
for(String s:dates){ 
    SimpleDateFormat format=new SimpleDateFormat("DD-MM-yyyy"); 
    Date date=format.parse(s); 
    System.out.println(date); 
} 

Выход:

Sun Jan 18 00:00:00 IST 2015 
Fri Jan 09 00:00:00 IST 2015 
Wed Jan 21 00:00:00 IST 2015 

Вы могли заметить на все даты он отображает JAN вместо ТЭБ/MAR.

+3

он должен быть 'ДД-ММ-yyyy' –

+0

@Raj Я не могу поверить в это , – MaxZoom

ответ

6

Вы хотите, чтобы dd вместо DD при построении SimpleDateFormat. DD означает «день года», а не «день месяца». Каждые время SimpleDateFormat похоже, что это неправильно, вы должны проконсультироваться с documentation и проверить свой узорный текст действительно, очень тщательно - особенно капитализацию.

(Есть и другие вещи, которые могут пойти не так, конечно, - у меня есть blog post для наиболее распространенных из них.)

+0

град Джон Скит. – Ungeheuer

+0

Спасибо, Джон. Это было действительно полезно –

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