SimpleDateFormat возвращает 24-часовую дату: как получить 12-часовую дату?
Мне нужно текущее время в миллисе, а затем сохранить его в 12-часовом формате, но с этим фрагментом кода я получаю 24-часовой формат времени.
long timeInMillis = System.currentTimeMillis();
Calendar cal1 = Calendar.getInstance();
cal1.setTimeInMillis(timeInMillis);
SimpleDateFormat dateFormat = new SimpleDateFormat("dd/mm/yyyy HH:mm:ss a");
dateforrow = dateFormat.format(cal1.getTime());
Кто-нибудь может предложить изменения для получения желаемых результатов?
Ответы
Ответ 1
Измените HH
на HH
как
long timeInMillis = System.currentTimeMillis();
Calendar cal1 = Calendar.getInstance();
cal1.setTimeInMillis(timeInMillis);
SimpleDateFormat dateFormat = new SimpleDateFormat(
"dd/MM/yyyy hh:mm:ss a");
dateforrow = dateFormat.format(cal1.getTime());
Обратите внимание, что dd/mm/yyyy
- даст вам минуты вместо месяца.
Ответ 2
Ссылаясь на SimpleDataFormat JavaDoc:
Letter | Date or Time Component | Presentation | Examples
---------------------------------------------------------
H | Hour in day (0-23) | Number | 0
h | Hour in am/pm (1-12) | Number | 12
Ответ 3
Привет, я тестировал ниже код, который работал нормально:
long timeInMillis = System.currentTimeMillis();
Calendar cal1 = Calendar.getInstance();
cal1.setTimeInMillis(timeInMillis);
SimpleDateFormat dateFormat = new SimpleDateFormat("dd/mm/yyyy hh:mm:ss a");
dateFormat.format(cal1.getTime());
Ответ 4
Я снова сталкиваюсь с этим. H vs h, в течение 24 часов и 12 часов!
Ответ 5
Да, подтвердил, что просто используя hh вместо HH исправил мою проблему.
Изменилось:
SimpleDateFormat sdf = new SimpleDateFormat("HH:mm aa");
Для этого:
SimpleDateFormat sdf = new SimpleDateFormat("HH:mm aa");
Вы все еще можете использовать HH для хранения времени, если вы не хотите беспокоиться о хранении и работе с AM/PM. Затем, когда вы его извлечете, используйте hh.
Ответ 6
SimpleDateFormat dateFormat = new SimpleDateFormat("dd/mm/yyyy hh:mm:ss a");
используйте hh
вместо hh
Ответ 7
Вы можете попробовать это как
Calendar c= Calendar.getInstance();
SimpleDateFormat sdf= new SimpleDateFormat("dd/MM/yyyy hh:mm:ss a");
String str=sdf.format(c.getTime());
Ответ 8
См. пример кода ниже:
SimpleDateFormat df = new SimpleDateFormat("hh:mm");
String formattedDate = df.format(new Date());
out.println(formattedDate);