美文网首页时间相关操作
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日期操作

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

  • 日期操作

    编写一个函数,要求输入年月日时分秒,输出该年月日时分秒的下一秒。如输入2018年12月31日23时59分59秒,则...

  • 日期操作

    用格式化操作获取一个日期的年、月、日、星期等信息 day=datetime.datetime.now().strf...

  • 日期操作

    获取方法 设置方法

  • Scala日期操作

    转载请务必注明原创地址为:https://dongkelun.com/2018/06/01/scalaDate//...

  • shell操作日期

    https://blog.csdn.net/u014044812/article/details/78190063

  • java日期操作

    Calendar类

  • iOS 日期操作

    日期操作时间:2017年8月14日 周一 时间戳 1、比较日期大小默认会比较到秒,要记得设置日期格式 2、计算年龄...

  • 日期操作类

    之前一直强调java类的概念,java类与数据库表的映射,数据表的日期字段一直没有映射。 今天研究一下Java.u...

  • MySql 日期操作

    1、获取日期的函数 select now();//获取当前日期与时间---同义词:localtime()、loca...

网友评论

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

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