面对Calendar对象的问题

Sur*_*rma 2 java time android calendar date

我有一个任务,我需要以编程方式将小时,分钟,子午线设置为Calendar对象,并且需要以hh:mm a格式显示时间.到目前为止,下面是我的代码.

Calendar calendar = (Calendar)dateNtime.clone();
        calendar.set(Calendar.HOUR, 12);
        calendar.set(Calendar.MINUTE, 0);
        calendar.set(Calendar.AM_PM, 1);

SimpleDateFormat dateFormat = new SimpleDateFormat("hh:mm a");
    String str = dateFormat.format(calendar.getTimeInMillis());
Run Code Online (Sandbox Code Playgroud)

其中dateNTime是一个现有的日历对象,我必须在构建新的日历对象时使用它.

一切都很顺利,只有一个案例,而我设定12PM.它总是格式化hh:mm a并且结果是12:00 AM,而它应该是12:00 PM.

如果有人对Calendar对象有很好的体验并且已知问题,请提供帮助,如果有好的教程链接,请提供给我.

Jon*_*eet 5

HOUR字段记录为:

get和set的字段编号表示上午或下午的小时.小时用于12小时制(0 - 11).

因此,不应将其设置为12,而应将其设置为0.

就个人而言,我只是设置了该HOUR_OF_DAY字段,如果你想让它成为PM,则增加12小时 - 并且根本不设置AM_PM字段.