Pouvez-vous définir AM/PM dans une date GregorianCalendar ou est-ce quelque chose que vous ne pouvez obtenir que
-
12-12-2019 - |
Question
J'ai jeté un coup d'œil à l'API Java sur Gregoriancalendar et je n'ai vu aucune façon de définir l'AM / PM dans son constructeur.Pouvez-vous définir AM/PM dans une date GregorianCalendar ou est-ce quelque chose que vous ne pouvez obtenir qu'en utilisant une méthode get sur le calendrier.Est-ce qu'il gère tout cela automatiquement.Je cherche à prendre le matin/après-midi et à l'afficher dans mon toString pour une classe qui a un objet date.J'allais utiliser la méthode get sur le calendrier pour obtenir ceci.Je comprends que le am/pm est un int qui vaut 0 ou 1.
Je me demandais également si toutes les heures sont de 24 heures en grégorien et si cela détermine automatiquement le matin et l'après-midi ?
La solution
Calendar.get(Calendar.HOUR);
Donne l'heure (0-12) pour le format AM/PM.
Calendar.get(Calendar.HOUR_OF_DAY);
Donne l'heure allant de 0 à 24.
Il effectue la conversion tout seul.Vous n'avez pas besoin de le dire.
cal.set( Calendar.AM_PM, Calendar.AM )
Volonté/Pourrait changement l'heure ponctuelle que cet objet de calendrier représente.(S'il est 13h00, vous aurez ensuite 1h00 du matin).Ceci est vrai pour GregorianCalendar
(voir commentaire à la question de Peter Cetinski).
Btw/Hint imo, vous devriez utiliser un DateFormat
sortir ton format préféré.
Autres conseils
Calendar cal = new GreogorianCalendar();
cal.set( Calendar.AM_PM, Calendar.AM );
Simply I did this :
Calendar calendar = new GregorianCalendar();
int seconds = calendar.get(Calendar.SECOND);
int minutes = calendar.get(Calendar.MINUTE);
int hour = calendar.get(Calendar.HOUR);
int am_pm = calendar.get(Calendar.AM_PM);
String ampm = "ampm";
if (am_pm == 0) {
ampm = "AM";
} else {
ampm = "PM";
}
jLabel1.setText(hour + ":" + minutes + ":" + seconds + " " + ampm);