Подтвердить что ты не робот

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

Кто-нибудь может предложить изменения для получения желаемых результатов?

4b9b3361

Ответ 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);