南京学码思
Date和Calendar的区别及互转方法
发布用户:xuemasi
+收藏
发布时间:2016-10-25 17:46:31
已有30人浏览
通过Calendar生成Date实例时,没有设置的域(年,月,日,时,分,秒,毫秒)会默认的用当前时间的对应的域进行设置。通过SimpleDateFormat解析得到的时间如果相关的域没有设置,则用对应域的最小值来设置。在实际应用时要注意下。
1 Date date = new Date();
2 //设置格式
3 SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
4
5 String strDate = sdf.format(date);
6 //String转为Date类型
7 Date now = sdf.parse(strDate);
Date与Calendar之间的互转
1 Calendar cal = Calendar.getInstance();
2
3 cal.setTime(new Date());
4
5 Date date = cal.getTime();
利用Calendar获取年、月、周、日、小时等时间域
cal.get(Calendar.YEAR);
cal.get(Calendar.MONTH);
cal.get(Calendar.WEEK);
对时间进行加减
1 cal.add(Calendar.MONTH, 1);
2 cal.add(Calendar.WEEK,2);
3 cal.add(Calendar.MINUTE,-10);
add 方法的一个参数为 需要加减的 时间域(年、月、周等),参数二位 变化量,负数代表时间向前(过去)推移,也就是所谓的减,碰到跨域的情况,比如现在是2012-11,然后执行 cal.add(Calendar.MONTH,3),时间会自动变为2013-02,然后roll()方法则不会,roll方法会将时间推到2012-02,它只对指定的时间域加减,是不会自动跨域的
Date和Calendar常见使用方法:http://www.hfxms.com.cn/course/java/2806.html