美文网首页时间相关操作
JavaSE-Calendar日期操作

JavaSE-Calendar日期操作

作者: 陇上伯约 | 来源:发表于2016-05-30 23:52 被阅读143次

    java.util.Clendar

    日历类,该类是一个抽象类,封装了针对日期进行操作的一些方法,比如时间计算等。

    使用Calendar的静态方法创建一个实例,该方法会根据当前系统所在地区创建一个相应的实现,通常为格力高立历,默认创建的实例表示的时间为当前系统时间

    Calendar calendar = Calendar.getInstance();

    System.out.println(calendar);//输出一连串的详细时间格式,不利于阅读

    Calender与Date之间的相互转换

    方法:Date getTime();Calendar提供了该方法并会返回一个Date对象,该对象表示的时间就是当前Calendar表示的时间,利于阅读

    Date date = calendar.getTime();

    System.out.println(date);//Mon May 30 22:50:59 CST 2016

    方法:void setTime();Calendar提供了该方法会将给定的Date时间设置为当前Calendar所表示的时间

    calendar.setTime(date);

    设置时间分量

    方法:void set(int field, int value);该方法第一个参数为要设置的具体的时间分量,例如年、月、日;第二个参数为一个int值,使用Calendar提供的常量进行设置

    设置Calender,使其表示2008-8-8 20:08:08

    Calendar calendar = Calendar.getInstance();

    calendar.set(Calendar.YEAR, 2008);

    calendar.set(Calendar.MONTH, Calendar.AUGUST);

    calendar.set(Calendar.DAY_OF_MONTH, 8);//表示该月的具体一天,也可使用DATE

    calendar.set(Calendar.HOUR_OF_DAY, 20);//表示该天的时间

    calendar.set(Calendar.MINUTE, 8);

    calendar.set(Calendar.SECOND, 8);

    System.out.println(calendar.getTime());//Fri Aug 08 20:08:08 CST 2008

    获取一个时间分量

    方法:int get(int filed);

    int year = calendar.get(Calendar.YEAR);

    int month = calendar.get(Calendar.MONTH)+1;//月份从0开始计算,输出要加1

    int day = calendar.get(Calendar.DAY_OF_MONTH);

    System.out.println(year+"-"+month+"-"+day);//2016-5-30

    int days = calendar.get(Calendar.DAY_OF_YEAR);

    System.out.println(year+"年已经过了"+thisYear+"天!");//2016年已经过了151天!

    获取一个时间分量所允许的最大值

    方法:int getActualMaximum(int field);

    int days = calender.getActualMaximum(Calendar.DAY_OF_YEAR);

    System.out.println(days);//366

    时间的计算

    方法:void add(int field, int value);给指定的时间分量加上给定的值,若给定的值为负数,则是减去该值

    //查看3年2个月零8天后的日子

    calendar.add(Calendar.YEAR, 3);

    calendar.add(Calendar.MONTH, 2);

    calendar.add(Calendar.DAY_OF_YEAR, 8);

    Date date = calendar.getTime();

    SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");//利用SimpleDateFormat类将时间进行格式转换,符合阅读习惯

    System.out.println(sdf.format(date));//2019-08-07

    日期需求处理的常见流程

    当遇到需要用户输入一个时间并进行计算后输出另一个时间等类似需求时,处理流程如下:

    1 首先获取用户输入的时间字符串,处理为"yyyy-MM-dd"此种格式

    2 创建一个SimpleDateFormat实例将输入的字符串利用parse(String src)方法转换为Date格式

    3 创建一个Calendar实例,并利用setTime(Date date)方法将Calendar表示的时间设置为用户输入的时间

    4 利用Calendar提供的方法void add(int field, int value)进行时间的计算

    5 将Calendar利用Date getTime()方法转换为一个Date格式的时间

    6 使用SimpleDateFormat将Date表示的时间利用String format(Date date)方法格式化输出并显示

    相关文章

      网友评论

        本文标题:JavaSE-Calendar日期操作

        本文链接:https://www.haomeiwen.com/subject/gjjcdttx.html