2017-02-11 2 views
-3

Я хотел получить дату и время в этом формате. «2017-02-05 20:20:03».
Для получения результата я использовал следующий код.
Но это не сработало.Время отображения в 24-часовом формате

System.out.println(new SimpleDateFormat("yyyy-mm-dd HH:mm:ss").format(new Date())); 
+0

ли * "не сработало" * должно быть описание того, что пошло не так? Насколько я вижу, у вас есть время в 24-часовом формате, так что в чем проблема? * ([krock guess ниже] (http://stackoverflow.com/a/42172475/5221149), но ваше описание вопроса сосет) * – Andreas

+0

Примечание: конкретная дата в вашем примере '2017-02-05' составляет около недели в прошлом на момент публикации. Построение даты с использованием конструктора no arg, т. Е. Новый 'Date()' даст вам текущую дату/время. – krock

ответ

0

Просмотрите таблицу date and time patterns; Месяц - это капитал M, а минута ниже m. Поэтому ваша дата должна выглядеть примерно так: yyyy-MM-dd.

SimpleDateFormat в код должен выглядеть следующим образом:

new SimpleDateFormat("yyyy-MM-dd HH:mm:ss") 

Как видно из таблицы, в приведенной выше ссылке, H в 24 час времени, так что это правильно. Вы проверили, в какой временной зоне работает jvm?

+0

Спасибо, что заметили. Но результат все еще выглядит так. «2017-02-11 10:42:43». Я хочу время в формате 24. –

+0

'new Date()' создаст новый объект даты для текущего времени. Конструктор [SimpleDateFormat constructor] (http://docs.oracle.com/javase/6/docs/api/java/text/SimpleDateFormat.html#SimpleDateFormat (java.lang.String)), который вы используете, будет форматировать дату, используя стандартная локаль. – krock

+0

спасибо, что помогли мне –

0

Ваша непосредственная проблема в том, что вы дважды использовали mm. MM - месяц.

Это работает в Java 8.

String dt = DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss").format(LocalDateTime.now); 

2017-02-10 23:20:11