转自:http://hi.baidu.com/huahua035/item/b5a53b6e3a4ae1106895e6a6
// 12小时制
SimpleDateFormat sdf1 = new SimpleDateFormat("yyyy-MM-dd hh:mm");
// 24小时制
SimpleDateFormat sdf2 = new SimpleDateFormat("yyyy-MM-dd HH:mm");
使用SimpleDateFormat 时,小时如果是小写的“hh”为12小时制,如果是大写的“HH”为24小时制;
c.get(Calendar.HOUR); // 12小时制
c.get(Calendar.HOUR_OF_DAY); // 24小时制
示例:
- public class Test {
- public static void main(String[] args) throws ParseException {
- String time = "2011-05-12 12:02";
- // 12小时制
- SimpleDateFormat sdf1 = new SimpleDateFormat("yyyy-MM-dd hh:mm");
- // 24小时制
- SimpleDateFormat sdf2 = new SimpleDateFormat("yyyy-MM-dd HH:mm");
- Date d1 = sdf1.parse(time);
- Date d2 = sdf2.parse(time);
- System.out.println(d1.toString());
- System.out.println(d2.toString());
- // 重新format却是正确的
- System.out.println(sdf1.format(d1).toString());
- System.out.println(sdf2.format(d2).toString());
- Calendar c = Calendar.getInstance();
- c.setTime(new Date());
- System.out.println(c.get(Calendar.HOUR));
- System.out.println(c.getTime().toString());
- System.out.println(c.get(Calendar.HOUR_OF_DAY));
- System.out.println(c.getTime().toString());
- }
- }
输出结果:
- Thu May 12 00:02:00 CST 2011
- Thu May 12 12:02:00 CST 2011
- 2011-05-12 12:02
- 2011-05-12 12:02
- 1
- Fri Dec 07 13:00:22 CST 2012
- 13
- Fri Dec 07 13:00:22 CST 2012
我碰到的问题终于解决了:每到下午,设定的时间会+12小时,这样设置的报警时间就成了明天的时间了。问题在这里:
c.get(Calendar.HOUR); // 12小时制
c.get(Calendar.HOUR_OF_DAY); // 24小时制
转载于:https://blog.51cto.com/2301703/1081222