java常用类—Calendar类与Date类的常用方法及转换
-
Calendar类
从JDK1.1开始,Java官方推荐使用Calendar来替换Date的使用
获得Calendar类中的信息
Calendar c2 = Calendar.getInstance(); //年份 int year = c2.get(Calendar.YEAR); //月份,因为获得的月份为实际的月份值减1所以加上1则为当前实际月份 int month = c2.get(Calendar.MONTH) + 1; //日期 int date = c2.get(Calendar.DATE); //小时 int hour = c2.get(Calendar.HOUR_OF_DAY); //分钟 int minute = c2.get(Calendar.MINUTE); //秒 int second = c2.get(Calendar.SECOND); //星期几,周日是1,周一是2,周二是3,依次类推 int day = c2.get(Calendar.DAY_OF_WEEK);
Calendar类中的add方法
public abstract void add(int field,int amount) 该方法的作用是在Calendar对象中的某个字段上增加或减少一定的数值,增加是amount的值为正,减少时amount的值为负。 例如在计算一下当前时间100天以后的日期,代码如下: Calendar c3 = Calendar.getInstance(); c3.add(Calendar.DATE, 100); int year1 = c3.get(Calendar.YEAR); //月份 int month1 = c3.get(Calendar.MONTH) + 1; //日期 int date1 = c3.get(Calendar.DATE); //输出的日期则是100天以后的日期 System.out.println(year1 + "年" + month1 + "月" + date1 + "日");
Calendar类中的after方法
public boolean after(Object when) 该方法的作用是判断当前日期对象是否在when对象的后面,如果在when对象的后面则返回true,否则返回false。 例如,代码如下: Calendar c4 = Calendar.getInstance(); c4.set(2018, 8 - 1, 8); Calendar c5 = Calendar.getInstance(); c5.set(2019, 8 - 1, 8); boolean b = c5.after(c4); System.out.println(b); 该示例代码中对象c4代表的时间是2018年8月8号,对象c5代表的时间是2019年8月8号,则对象c5代表的日期在c4代表的日期之后,所以after方法的返回值是true。
-
Date类
在JDK1.0中,Date类是唯一的一个代表时间的类,所表示特定的瞬间,精确到毫秒
获得Date类中的信息
Date d2 = new Date(); //年份 int year = d2.getYear() + 1900; //月份 int month = d2.getMonth() + 1; //日期 int date = d2.getDate(); //小时 int hour = d2.getHours(); //分钟 int minute = d2.getMinutes(); //秒 int second = d2.getSeconds(); //星期几 int day = d2.getDay(); 使用Date类中对应的get方法,可以获得Date类对象中相关的信息,需要注意的是使用getYear获得是Date对象中年份减去1900以后的值, 所以需要显示对应的年份则需要在返回值的基础上加上1900,月份类似。 在Date类中还提供了getDay方法,用于获得Date对象代表的时间是星期几,Date类规定周日是0,周一是1,周二是2,后续的依次类推
-
Calendar类与Date类的转换
例如,代码如下:
public class CalendarTest { public static void main(String[] args) { //Calendar--->Date Calendar c = Calendar.getInstance(); Date d = c.getTime(); //Date--->Calendar Date d1 = new Date(); Calendar c1 = Calendar.getInstance(); c1.setTime(d1); System.out.println(d); System.out.println(c1.get(Calendar.YEAR)+"年"+(c1.get(Calendar.MONTH)+1)+"月"+c1.get(Calendar.DATE)+"日"); } }