我看了一下关于GregorianCalendar的java api,并没有看到任何设置am / pm的方法 在它的构造函数中。你可以在GregorianCalendar日期设置AM / PM,或者只能在日历上使用get方法获得。它会自动处理所有这些吗?我正在寻找am / pm并将其输出到我的toString中,以获得具有日期对象的类。我打算在日历上使用get方法来获取它。我知道am / pm是一个0或1的int。
我还想知道所有小时是否都是24小时格里高利并且它会自动确定上午和下午?
答案 0 :(得分:33)
Calendar.get(Calendar.HOUR);
给出AM / PM格式的小时(0-12)。
Calendar.get(Calendar.HOUR_OF_DAY);
小时范围为0-24。
它自己进行转换。你不需要告诉它。
cal.set( Calendar.AM_PM, Calendar.AM )
将更改此日历对象所代表的点时间。 (如果是下午1:00,您将在之后的1:00 AM)。这对于GregorianCalendar
是正确的(见Peter Cetinski对问题的评论)。
顺便说一下,您应该使用DateFormat
输出您的首选格式。
答案 1 :(得分:6)
Calendar cal = new GreogorianCalendar();
cal.set( Calendar.AM_PM, Calendar.AM );
答案 2 :(得分:0)
我只是这样做了:
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);