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");