JAVA提供了Date和Calendar用于处理日期、时间的类,包括创建日期、时间对象,获取系统当前日期、时间等操作。 一、Date类(java.util.Date) 常用的两个构造方法: 1. Date(); 2. Date(long date); 常用的方法: boolean after(Date when) boolean before(Date when) long getTime(); void setTime(); System.currentTimeMills(); 二、Calendar类 因为Date类在设计上存在一些缺陷,所以Java提供了Calendar类更好的处理日期和时间。Calendar是一个抽象类,它用于表示日历。Gregorian Calendar,最通用的日历,公历。 Calendar与Date都是表示日期的工具类,它们直接可以自由转换。
Calendar calendar = Calendar.getInstance();//创建一个默认的Calendar对象 Date date=calendar.getTime();从Calendar对象中取出Date对象 //通过Date对象获取对应的Calendar对象 //因为Calendar/GregorianCalendar没有构造函数可以接受Date对象 //所以必须先获取一个Calendar实例,然后调用其setTime() Calendar calendar2=Calendar.getInstance(); Calendar2.setTime(date);Calendar类提供了大量访问、修改日期时间的方法: void add(int field,int amount):给定日历字段增加或减去指定时间量 int get(int field):返回指定日历字段的值 int getActualMaximum(int field):返回指定日历字段可能拥有的最大值 int getActualMinimum(int field):返回指定日历字段可能拥有的最小值 void roll(int field,int amount):与add()方法类型,但不会进位 void set(int field,int amount):给指定的日历字段设置为给定值 void set(int year,int month,int date):设置Calendar对象的年、月、日三个字段的值 void set(int year,int month,int date,int hourOfDay,int minute,int second) :设置Calendar对象的年、月、日、时、分、秒三个字段的值 Field是Calendar的类变量,如Calendar.YEAR 三、Java8新增java.time包 Clock:该类用于获取指定时区的当前日期、时间。 Duration:该类代表持续时间。 Instant:代表一个具体的时刻,可以精确到纳秒。 LocalDate:该类代表不带时区的日期。 LocalTime:该类代表不带时区的时间。 LocalDateTime:该类代表不带时区的日期、时间。 MonthDay:该类仅代表月日。 YearMonth:该类仅代表年月。 ZonedDateTime:该类代表一个时区化的日期、时间。