Können Sie AM/PM in einem GregorianCalendar-Datum einstellen oder ist es etwas, das Sie nur bekommen können?
-
12-12-2019 - |
Frage
Ich sah mir die Java -API über Gregoriancalendar an und sah keine Möglichkeit, den AM/PM in seinem Konstruktor festzulegen.Können Sie AM/PM in einem GregorianCalendar-Datum festlegen oder ist dies etwas, das Sie nur mithilfe einer Get-Methode im Kalender erhalten können?Wird das alles automatisch erledigt?Ich möchte die Uhrzeit am/pm nehmen und in meinem toString für eine Klasse ausgeben, die ein Datumsobjekt hat.Ich wollte die Get-Methode des Kalenders verwenden, um dies abzurufen.Ich verstehe, dass am/pm ein int ist, der 0 oder 1 ist.
Ich habe mich auch gefragt, ob alle Stunden im Gregorianischen 24-Stunden-Format haben und automatisch die Vor- und Nachmittagszeit ermittelt werden.
Lösung
Calendar.get(Calendar.HOUR);
Gibt die Stunde (0-12) für das AM/PM-Format an.
Calendar.get(Calendar.HOUR_OF_DAY);
Gibt die Stunde im Bereich von 0-24 an.
Die Konvertierung erfolgt selbstständig.Du brauchst es nicht zu sagen.
cal.set( Calendar.AM_PM, Calendar.AM )
Wille/Könnte ändern Der Zeitpunkt, den dieses Kalenderobjekt darstellt.(Wenn es 13:00 Uhr ist, haben Sie danach 1:00 Uhr Zeit).Dies gilt für GregorianCalendar
(siehe Kommentar zur Frage von Peter Cetinski).
Übrigens/Hinweis: Imo sollten Sie a verwenden DateFormat
ausgeben dein bevorzugtes Format.
Andere Tipps
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);