你可以在GregorianCalendar日期设置AM / PM,或者它是你只能获得的东西

时间:2012-03-12 12:33:07

标签: java time gregorian-calendar

我看了一下关于GregorianCalendar的java api,并没有看到任何设置am / pm的方法 在它的构造函数中。你可以在GregorianCalendar日期设置AM / PM,或者只能在日历上使用get方法获得。它会自动处理所有这些吗?我正在寻找am / pm并将其输出到我的toString中,以获得具有日期对象的类。我打算在日历上使用get方法来获取它。我知道am / pm是一个0或1的int。

我还想知道所有小时是否都是24小时格里高利并且它会自动确定上午和下午?

3 个答案:

答案 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);