Месячная проблема в классе SimpleDateFormat

String expiryDate = "2016-03-14"; private String formatDateTime(String expiryDate, String expiryTime) { SimpleDateFormat input = new SimpleDateFormat("yyyy-mm-dd"); SimpleDateFormat output = new SimpleDateFormat("MMM, dd, yyyy"); try { String formattedDate = output.format(input.parse(expiryDate ));// parse input return formattedDate + ", " + expiryTime; } catch (ParseException e) { e.printStackTrace(); } return null; } 

Однако, когда он возвращается, он дает 14 января 2016 года.

Желаемый результат был Mar, 14,2016

mm должен быть капиталом MM . Beacuse

Mm представляют минуту MM представляют месяц

Таким образом, ваш формат должен быть

 SimpleDateFormat input = new SimpleDateFormat("yyyy-MM-dd"); 

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

Пока ММ представляет месяцы. Вам нужно добавить следующее:

 SimpleDateFormat input = new SimpleDateFormat("yyyy-MM-dd"); 
 SimpleDateFormat input = new SimpleDateFormat("yyyy-mm-dd"); 

должно быть

 SimpleDateFormat input = new SimpleDateFormat("yyyy-MM-dd"); 

Мм должен быть ММ

 SimpleDateFormat input = new SimpleDateFormat("yyyy-mm-dd"); 

В приведенном выше заявлении необходимо внести поправку, как показано ниже:

 SimpleDateFormat input = new SimpleDateFormat("yyyy-MM-dd"); 

Используйте MM вместо mm, поскольку MM используется для месяца, в то время как mm используется для минут.

java.text.SimpleDateFormat внутренне вызывает java.util.Locale которые имеют фактическую реализацию шаблона Date Time и Region Format. Итак, в Locale MM задан для месяца и мм в минутах. Итак, используя

SimpleDateFormat input = new SimpleDateFormat("yyyy-mm-dd"); Не будет соответствовать шаблону, поэтому по умолчанию месяц будет установлен по умолчанию 1 . И он отобразился в Jan вместо Mar (что вы действительно ожидаете).

Используйте MM для представления месяца. Это решит вашу проблему.

 SimpleDateFormat input = new SimpleDateFormat("yyyy-MM-dd"); 
Intereting Posts
Правильный способ хранения ключа шифрования для базы данных SqlCipher Ошибка при создании с помощью Gradle в командной строке с проектом студии android: ошибка Xlint StartForeground для IntentService Android 5.0 – Intellij Gradle: не удается разрешить символ: @color: material_blue_500 Как изменить значок элемента меню ActionBar динамически Исключение Null Pointer для Android в Textview setText Значения EditText в диапазоне Android: Как я могу получить размер файла FTP через FTPClient? Быстрые настройки для Google в Android N Ложноположительная ошибка разрешения линт даже после запроса разрешения во время выполнения Как проверить подключение к Интернету в Android для подключения Wi-Fi? Как получить смещение вида внутри ScrollView? Как получить идентификатор приложения Android? Изменение значка навигационного ящика и интервала текста Есть ли способ дифференцировать нормальное разрушение активности и вызванное вращением?