2014-02-03 6 views
0

У меня проблема, когда я хотел бы получить начало дня, однако, похоже, он устанавливает его в 12:00 через автоматический.Java Формат даты weird

SimpleDateFormat dfFull = new SimpleDateFormat("yyyy-MM-dd hh:mm:ss"); 
String todayDate = dfFull.parse("2014-06-06 00:00:00"); 

today = dfFull.format(todayDate); 
System.out.println(today); 

Почему это выплевывая:

2014-06-06 12:00:00 

12:00:00 является вопрос

+2

«hh» означает час в am/pm, но вы не указываете am/pm. Попробуйте использовать «HH», что означает часы в 24-часовом формате. – sheltem

+1

Нет нулевого часа в 12-часовом формате ... –

ответ

11

Это потому, что hh представляет час в 12-часовом формате. Вместо этого вам нужно использовать HH.

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

Посмотрите на docs для получения дополнительной информации.

Кроме того, на боковой ноте в вашем коде есть опечатка.

SimpleDateFormat dfFull = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); 
Date todayDate = dfFull.parse("2014-06-06 00:00:00"); // todayDate must be of type Date and not String 
String today = dfFull.format(todayDate); // today should be of type String 
System.out.println(today); 
1

В этом случае вы должны использовать HH.

SimpleDateFormat dfFull = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); 
String todayDate = dfFull.parse("2014-06-06 00:00:00"); 

today = dfFull.format(todayDate); 
System.out.println(today); 

Теперь вы получите из положить в

2014-06-06 00:00:00 

И снова, если вы используете hh, что означает, что вы используете 12-часовой формат, а HH означает 24-часовой формат

Так

Смежные вопросы