2013-12-02 4 views
2

Я хочу использовать время в формате HHMM, например, в 1600 часов для военных в 16 часов. Мне было любопытно: есть ли способ получить это с помощью некоторого dateformatter?Время в формате HHMM

Не стесняйтесь рекомендовать стороннюю библиотеку или простое решение Java API.

ответ

7

Используйте java.text.SimpleDateFormat

Date date = new Date(); 
DateFormat format = new SimpleDateFormat("HHmm"); 
System.out.println(format.format(date)); 
+0

FYI, хлопотно старые классы даты и времени, такие как [ 'java.util.Date'] (https://docs.oracle.com/javase/8/docs/api/java/util/Date .html), ['java.util.Calendar'] (https://docs.oracle.com/javase/8/docs/api/java/util/Calendar.html) и' java.text.SimpleTextFormat' являются теперь [наследие] (https://en.wikipedia.org/wiki/Legacy_system), вытесненное [java.time] (https://docs.oracle.com/javase/8/docs/api/java/time /package-summary.html). См. [Учебное пособие по Oracle] (https://docs.oracle.com/javase/tutorial/datetime/TOC.html). –

2

Попробуйте это:

System.out.println(new SimpleDateFormat("HHmm").format(new Date())); 
+0

FYI, неприятные старые классы времени, такие как ['java.util.Date'] (https://docs.oracle.com/javase/8/docs/api/java/util/Date.html), [ 'java.util.Calendar'] (https://docs.oracle.com/javase/8/docs/api/java/util/Calendar.html) и' java.text.SimpleTextFormat' теперь [наследие] (https://en.wikipedia.org/wiki/Legacy_system), вытесненный [java.time] (https://docs.oracle.com/javase/8/docs/api/java/time/package-summary. html). См. [Учебное пособие по Oracle] (https://docs.oracle.com/javase/tutorial/datetime/TOC.html). –

0

Вы также можете использовать Joda-Time http://www.joda.org/joda-time/userguide.html

Это обеспечивает замену качества для даты и времени классов Java ,

DateTime dateTime = new DateTime(); 
    String hhmm=dateTime.toString("hhmm")); 
+0

точным решением было бы лучше –

+0

FYI, проект [Joda-Time] (http://www.joda.org/joda-time/) теперь находится в [режиме обслуживания] (https://en.wikipedia.org/wiki/Maintenance_mode), при этом команда советует перейти на классы [java.time] (http://docs.oracle.com/javase/8/docs/api/java/time/package-summary.html). См. [Учебное пособие по Oracle] (https://docs.oracle.com/javase/tutorial/datetime/TOC.html). –

+0

Этот шаблон форматирования должен быть в верхнем регистре 'H':' HHmm' для 24-часовых часов в соответствии с запросом. 'hhmm' для 12-часовых часов. –

0

Я использую Apache Commons Lang FastDateFormat и DateFormatUtils для форматирования даты и времени. FastDateFormat является сокращение к замене на SimpleDateFormat, который является быстрым и эффективным потоком, и DateFormatUtils подходит для форматирования дат и времени ISO8601.

1

В Java 8 и более поздних версиях используйте классы java.time.

LocalDateTime.now().format(DateTimeFormatter.ofPattern("HHmm"); 
+0

В принципе правильный, но более подходящий для использования 'LocalTime', а не' LocalDateTime'. Кроме того, я предлагаю всегда указывать необязательный аргумент 'ZoneId' при вызове' now() ', вместо того, чтобы неявно ссылаться на текущий часовой пояс JVM, который может быть изменен в любой момент любым кодом в любом приложении, работающем в JVM. –

+0

Совет: перед Java 8 используйте проект [* ThreeTen-Backport *] (http://www.threeten.org/threetenbp/), где большая часть функций java.time возвращается на Java 6 и Java 7 Для Android см. Проект * ThreeTenABP *. –

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