JAVA 的 Date、Calendar的常用用法 - mimamo
最近在做项目的时候用到Date 和Calendar比较多,而且用到的方式也比较全,今天写篇博文总结一下
在java中用到的最多的时间类莫过于 java.util.Date了,由于Date类中将getYear(),getMonth()等获取年、月、日的方法都废弃了,所以要借助于Calendar来获取年、月、日、周等比较常用的日期格式
首先,先说一下Date与String的互转用法,这里需要用到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,它只对指定的时间域加减,是不会自动跨域的