SimpleDateFormat与Calendar的24小时制与12小时制

// 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());
          // 重新format却是正确的
          System.out.println(sdf1.format(d1).toString());
          System.out.println(d2.toString());
  
          Calendar c=Calendar.getInstance();
          c.setTime(new Date());
          c.get(Calendar.HOUR);
          System.out.println(c.getTime().toString());
          c.get(Calendar.HOUR_OF_DAY);
          System.out.println(c.getTime().toString());
      }
}

 

参考:http://blog.csdn.net/shibenjie/archive/2009/06/12/4263912.aspx


 

我碰到的问题终于解决了:每到下午,设定的时间会+12小时,这样设置的报警时间就成了明天的时间了。问题在这里:c.get(Calendar.HOUR);   // 12小时制

c.get(Calendar.HOUR_OF_DAY);  // 24小时制
  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值