8

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

公历中的所有时间都是 24 小时格式吗?它会自动确定上午和下午吗?

4

3 回答 3

41
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)。这适用于GregorianCalendar(见 Peter Cetinski 对问题的评论)。

顺便说一句/提示 imo 你应该使用 aDateFormat来输出喜欢的格式。

于 2012-03-12T12:52:25.220 回答
6
Calendar cal = new GreogorianCalendar();   
cal.set( Calendar.AM_PM, Calendar.AM );
于 2012-03-12T12:38:34.357 回答
1

我只是这样做了:

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);
于 2019-01-07T18:00:51.007 回答