web-dev-qa-db-fra.com

Java: getMinutes et getHours

Comment obtenir les heures et les minutes depuis que Date.getHours et Date.getMinutes sont devenus obsolètes? Les exemples que j'ai trouvés sur Google ont utilisé les méthodes obsolètes.

126
Alex

Essayez d’utiliser Joda Time au lieu des classes standard Java.util.Date. La bibliothèque Joda Time possède une API bien meilleure pour la gestion des dates.

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

Voir ceci question pour les avantages et les inconvénients de l’utilisation de la bibliothèque Joda Time.

Joda Time peut également être inclus dans une version future de Java en tant que composant standard, voir JSR-31 .


Si vous devez utiliser les classes traditionnelles Java.util.Date et Java.util.Calendar, consultez leur JavaDoc pour obtenir de l'aide ( Java.util.Calendar et Java.util.Date ) .

Vous pouvez utiliser les classes traditionnelles comme celle-ci pour extraire des champs d'une instance Date donnée.

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!
162
Juha Syrjälä

Depuis la Javadoc pour Date.getHours

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

Donc utiliser

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

et l'équivalent pour getMinutes.

83
Mark

Java.time

Bien que je sois fan de Joda-Time , Java 8 introduit le package Java.time qui est finalement un utile Java solution standard! Lisez cet article, Date et heure de Java SE 8 , pour obtenir une bonne quantité d’informations sur Java.time en dehors des heures et des minutes.

En particulier, regardez la classe LocalDateTime .

Heures et minutes:

LocalDateTime.now().getHour();
LocalDateTime.now().getMinute();
49
J.D.

Tout d'abord, importez Java.util.Calendar

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

Essayez le calendrier. Utilisez getInstance pour obtenir un objet Calender. Ensuite, utilisez setTime pour définir la date requise. Vous pouvez maintenant utiliser get (int field) avec la constante appropriée, telle que HOUR_OF_DAY ou à peu près, pour lire les valeurs dont vous avez besoin.

http://Java.Sun.com/javase/6/docs/api/Java/util/Calendar.html

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

Ces fonctions renverront des valeurs int en heures et en minutes.

3
Nouran El Kassas

Une autre façon d'obtenir des minutes et des heures consiste à utiliser SimpleDateFormat.

SimpleDateFormat formatMinutes = new SimpleDateFormat("mm")
String getMinutes = formatMinutes.format(new Date())

SimpleDateFormat formatHours = new SimpleDateFormat("HH")
String getHours = formatHours.format(new Date())
3
Paka

Je recommanderais de regarder ad joda time. http://www.joda.org/joda-time/

J'avais peur d'ajouter une autre bibliothèque à mon projet volumineux, mais c'est simplement facile, rapide, intelligent et génial. De plus, il joue bien avec le code existant, dans une certaine mesure.

2
alamar
public static LocalTime time() {
    LocalTime ldt = Java.time.LocalTime.now();

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

Ça marche pour moi

1
Huey

Bien que je ne le recommande pas, je pense qu'il est utile de souligner que, même si de nombreuses méthodes sur Java.util.Date ont été déconseillées, elles fonctionnent toujours. Dans des situations triviales, il peut être correct de les utiliser. De plus, Java.util.Calendar est assez lent, donc getMonth et getYear on Date pourraient être plus rapides.

1
skaffman

import Java.util.*Vous pouvez obtenir l'heure et les minutes à l'aide du calendrier et de la classe de formatage. Calendar cal = Calendar.getInstance() et Formatter fmt=new Formatter() et définissez un format d'affichage des heures et des minutes fmt.format("%tl:%M",cal,cal) et imprimez System.out.println(fmt) la sortie s'affiche comme 10:12

0
Benjamin