java当中的日历
无论是在工作当中还是在学校的时候Date和日历Calender都常常用到 那么接下来就简单的总结一下我们平时大多时候会用到的内容。
在java中用到的最多的时间类莫过于 java.util.Date了,由于Date类中将getYear(),getMonth()等获取年、月、日的方法都废弃了,所以要借助于Calendar来获取年、月、日、周等比较常用的日期格式
首先,先说一下Date与String的互转用法,这里需要用到SimpleDateFormat
在java中用到的最多的时间类莫过于 java.util.Date了,由于Date类中将getYear(),getMonth()等获取年、月、日的方法都废弃了,所以要借助于Calendar来获取年、月、日、周等比较常用的日期格式
首先,先说一下Date与String的互转用法,这里需要用到SimpleDateFormat
1 Date date = new Date();
2 //设置格式 SimpleDateFormat这个类是我们常常用来设置时间格式的,在new的同时可以按照自己的意愿写上自己的格式 就如下文的"yyyy-MM-dd HH:mm:ss"
3 SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
2 //设置格式 SimpleDateFormat这个类是我们常常用来设置时间格式的,在new的同时可以按照自己的意愿写上自己的格式 就如下文的"yyyy-MM-dd HH:mm:ss"
3 SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
4 //将创建的日期对象放在SimpleDateFormat类的对象的方法当中,就会进行转化
5 String strDate = sdf.format(date);
6 //String转为Date类型 在此声明 SimpleDateFormat中的parse是将String类型转化成Date类型 其中Date中的parse是将String类型转化成Long型 eg:date.parse(“123566”)相信 //大家以后能用到
7 Date now = sdf.parse(strDate);
5 String strDate = sdf.format(date);
6 //String转为Date类型 在此声明 SimpleDateFormat中的parse是将String类型转化成Date类型 其中Date中的parse是将String类型转化成Long型 eg:date.parse(“123566”)相信 //大家以后能用到
7 Date now = sdf.parse(strDate);
Date与Calendar之间的互转
//获取日历的实例 在此声明 Calendar 不是用new创建对象
1 Calendar cal = Calendar.getInstance();
2 //通过Calendar 中的setTime方法设置创建的日期类型
3 cal.setTime(new Date());
4 //获取上面设置的时间
5 Date date = cal.getTime();
利用Calendar获取年、月、周、日、小时等时间域 如果查看底层代码的话就会发现它的YEAR也好MONTH也好还有其他的都是用public final static int修饰的 所以能用类名直接调用
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,它只对指定的时间域加减,是不会自动跨域的
1 Calendar cal = Calendar.getInstance();
2 //通过Calendar 中的setTime方法设置创建的日期类型
3 cal.setTime(new Date());
4 //获取上面设置的时间
5 Date date = cal.getTime();
利用Calendar获取年、月、周、日、小时等时间域 如果查看底层代码的话就会发现它的YEAR也好MONTH也好还有其他的都是用public final static int修饰的 所以能用类名直接调用
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,它只对指定的时间域加减,是不会自动跨域的
下面配个图给大家看看Calender中的相关方法(方法不全 有兴趣的可以查找相关书籍)