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.
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!
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.
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();
Tout d'abord, importez Java.util.Calendar
Calendar now = Calendar.getInstance();
System.out.println(now.get(Calendar.HOUR_OF_DAY) + ":" + now.get(Calendar.MINUTE));
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
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.
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())
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.
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
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.
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