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

Java: getMinutes и getHours

Как вы получаете часы и минуты, так как Date.getHours и Date.getMinutes устарели? В примерах, которые я нашел в поиске Google, использовались устаревшие методы.

4b9b3361

Ответ 1

Попробуйте использовать Joda Time вместо стандартных классов java.util.Date. Библиотека Joda Time имеет гораздо лучший API для обработки дат.

DateTime dt = new DateTime();  // current time
int month = dt.getMonth();     // gets the current month
int hours = dt.getHourOfDay(); // gets hour of day

Смотрите question за все преимущества и недостатки использования библиотеки времени Joda.

Время Joda также может быть включено в некоторую будущую версию Java в качестве стандартного компонента, см. JSR-310.


Если вы должны использовать традиционные классы java.util.Date и java.util.Calendar, обратитесь к их справки по JavaDoc (java.util.Calendar и java.util.Date).

Вы можете использовать традиционные классы, подобные этому, для получения полей из данного экземпляра даты.

Date date = new Date();   // given date
Calendar calendar = GregorianCalendar.getInstance(); // creates a new calendar instance
calendar.setTime(date);   // assigns calendar to given date 
calendar.get(Calendar.HOUR_OF_DAY); // gets hour in 24h format
calendar.get(Calendar.HOUR);        // gets hour in 12h format
calendar.get(Calendar.MONTH);       // gets month number, NOTE this is zero based!

Ответ 2

Из Javadoc для Date.getHours

As of JDK version 1.1, replaced by Calendar.get(Calendar.HOUR_OF_DAY)

Поэтому используйте

Calendar rightNow = Calendar.getInstance();
int hour = rightNow.get(Calendar.HOUR_OF_DAY);

и эквивалент для getMinutes.

Ответ 3

Сначала импортируйте java.util.Calendar

Calendar now = Calendar.getInstance();
System.out.println(now.get(Calendar.HOUR_OF_DAY) + ":" + now.get(Calendar.MINUTE));

Ответ 4

java.time

Пока я фанат Joda-Time, Java 8 представляет java.time, который, наконец, является достойным стандартным решением Java! Прочитайте эту статью Java SE 8 Date and Time, за хорошую информацию о java.time вне часов и минут.

В частности, посмотрите класс LocalDateTime.

Часы и минуты:

LocalDateTime.now().getHour();
LocalDateTime.now().getMinute();

Ответ 5

Попробуйте календаря. Используйте getInstance для получения объекта Calender. Затем используйте setTime для установки нужной даты. Теперь вы можете использовать get (int field) с соответствующей константой, например HOUR_OF_DAY, чтобы прочитать нужные значения.

http://java.sun.com/javase/6/docs/api/java/util/Calendar.html

Ответ 6

Я бы порекомендовал посмотреть время ad adoda. http://www.joda.org/joda-time/

Я боялся добавить еще одну библиотеку в свой толстый проект, но это было просто и быстро, и умно, и потрясающе. Кроме того, в какой-то степени он отлично работает с существующим кодом.

Ответ 7

Хотя я бы не рекомендовал это делать, я считаю, что стоит отметить, что, хотя многие методы java.util.Date устарели, они все еще работают. В тривиальных ситуациях, возможно, их можно использовать. Кроме того, java.util.Calendar довольно медленный, поэтому getMonth и getYear в Date могут быть полезными быстрее.

Ответ 8

import java.util.* Вы можете быстро и быстро использовать календарь и класс форматирования. Calendar cal = Calendar.getInstance() и Formatter fmt=new Formatter() и установите формат отображения часов и минут fmt.format("%tl:%M",cal,cal), а вывод System.out.println(fmt) отображается как 10:12

Ответ 9

int hr=Time.valueOf(LocalTime.now()).getHours();
int minutes=Time.valueOf(LocalTime.now()).getMinutes();

Эти функции возвращают значения int в часах и минутах.

Ответ 10

public static LocalTime time() {
    LocalTime ldt = java.time.LocalTime.now();

    ldt = ldt.truncatedTo(ChronoUnit.MINUTES);
    System.out.println(ldt);
    return ldt;
}

Это работает для меня