Вот мой оригинальный код-Разница между чч: мм а и HH: мм в
String dateString = "23 Dec 2015 1:4 PM";
Locale locale = new Locale("en_US");
SimpleDateFormat formatter = new SimpleDateFormat("dd MMM yyyy HH:mm a");
DateFormat df = new SimpleDateFormat("dd MMM yyyy HH:mm a", locale);
Date date = null;
try {
date = formatter.parse(dateString);
} catch (ParseException e) {
LOGGER.error(e);
}
String newDate = df.format(date);
System.out.println("oldDate = " + dateString);
System.out.println("newDate = " + newDate);
и вот мой output-
oldDate = 23 Dec 2015 1:4 PM
newDate = 23 Dec 2015 01:04 AM
Существует разница AM-PM между oldDate
и newDate
. Теперь я изменил код DateFormat
to-
SimpleDateFormat formatter = new SimpleDateFormat("dd MMM yyyy hh:mm a");
DateFormat df = new SimpleDateFormat("dd MMM yyyy hh:mm a", locale);
и я получаю ожидаемый вывод, что это-
oldDate = 23 Dec 2015 1:4 PM
newDate = 23 Dec 2015 01:04 PM
Я знаю, что HH
означает формат 24 часа и hh
означает 12-часовой формат.
Мой вопрос
Если я использую HH:mm a
вместо hh:mm a
, не это должно быть возвращение времени в 24-часовом формате?
(или)
Если он по умолчанию 12-часовой формат, она не должна возвращать соответствующий AM/PM маркер в зависимости от ввода даты при условии?
Это только для моего понимания.
Спасибо @MenoHochschild. Пожалуйста, взгляните на мой ответ еще раз! –
Ну что ж, лучше, но рекомендация 'new Locale (« en-us »)' все еще неверна. –
@MenoHochschild со всем уважением. Я хотел бы знать, что мы можем построить Locale в Java 8 (1.8.0_121) 'из языка, как указано в моем ответе! –