2016-11-08 2 views
0

Я использую SimpleDateFormat для изменения формата даты, показанного ниже. Но это как-то меняет мой год с 2016 года до 2019 года или 2018 года. Как я мог заставить его работать правильно?Android: SimpleDateFormat меняет год моей даты

String date = "2016-10-22 13:45:46.000000"; 

    SimpleDateFormat sdf = new SimpleDateFormat("yyyy-mm-dd HH:MM:SS"); 
    Date testDate = null; 
    try { 
     testDate = sdf.parse(date); 
    }catch(Exception ex){ 
     ex.printStackTrace(); 
    } 
    SimpleDateFormat formatter = new SimpleDateFormat("dd.mm.yyyy HH:MM"); 
    String newFormat = formatter.format(testDate); 

ответ

1

Вы должны быть осторожны, чтобы использовать правый кожух (либо верхний или нижний) для всех строк шаблонов даты/времени, как указано в SimpleDateFormat Javadoc.

Верхний регистр M используется для «Месяца в году», а в нижнем регистре m используется для «Минут в час».

Верхний регистр S используется для «Миллисекунды», а в нижнем регистре s используется для «секунды в минуту».

Это должно работать правильно:

String date = "2016-10-22 13:45:46.000000"; 

SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); 
Date testDate = null; 
try { 
    testDate = sdf.parse(date); 
}catch(Exception ex){ 
    ex.printStackTrace(); 
} 

SimpleDateFormat formatter = new SimpleDateFormat("dd.MM.yyyy HH:mm"); 
String newFormat = formatter.format(testDate); 
+0

прекрасно работает. Благодарю. –

+0

Добро пожаловать. Теперь, когда у вас есть по крайней мере 15 очков, вы также должны запомнить [vote up] (http://stackoverflow.com/help/privileges/vote-up) ответы, которые вы найдете полезными, включая те, которые вы принимаете. – cybersam

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