Java的时间、日期类

java本来提供了date和Calendar用于处理日期、时间的类,包括建立日期、时间的对象。获取系统当前的日期、时间等操做。但Date不只没法实现国际化,并且他对不一样属性也使用了先后矛盾的偏移量,月份从0开始 天数从一开始,年份从1900开始的,而calendar又过于复杂。因此通常用java8全新的日期时间类。java

1.Date类处理时间,在java.util包下,Date类提供六个构造方法,但有四个已通过时,会引发编译器的警告,剩下两个Data()生成一个表明当前时间的Date对象,该构造器在底层仍是带哦用了System.currentTimeMillis()得到long整数的日期做为参数;Date(long date)根据指定long型的整数来生成一个Date对象,该构造器的参数表示建立的Date对象和GMT1970年1月1日00:00:00之间的时间的差,以毫秒做为计时单位。与构造器相同,Date的大部分方法也已通过时了,boolean after(Date when)测试该是日期是否在指定日期when以后,boolean before(Date when)以前,long getTime():返回时间对应的long型的整数,即从GMT1970-01-01 00:00:00到该Date对象之间的时间差,以毫秒做为计时单位。void setTime(long time)设置该Date对象的时间。测试

2.java提供了Calendar类来更好的处理时间和日期,Calender是一个抽象的类,它用于表示日历。Gelender类自己就是一个抽象类,不可以被实例化,提供日历类的模板,java自己提供一个GregorianCalendar类,一个表明格里高利的实例,一般咱们说的公历。Calendar类提供了几个静态方法getInstance()来获取Calender的对象,Calendar也提供大量访问时间。修改时间的方法,void add(int field,int amount)根据日历的规则为给定的日历字段添加或减去指定的时间量;int get(int field)返回指定的日历字段值;int getActualMinimum(int field)返回指定的日历字段可能拥有的最小值。void rool(int field,int amount):与add方法相似,区别在与加上amount后超过该字符段能表示最大的范围时,也不会向上字符进位。void set(int field,int value)将给定的日历字段设置为给定值,void set(int year,int month,int data)设置Calendar对象的年月日三个字符段。void set(int year,int month,int date,int hour,int minute,int second)设置Calendar对象的年月日月份秒6个字符段。code

3.java8专门的一个新增的java.time包,该包下有一些经常使用的类Clock:该类用于获取指定时间的当前的日期时间。Duration:该类表明持续的时间。Instant:表明一个具体的时刻,能够精确到纳秒。LocalDate:该类表明不带时区的时间。LocalDateTime:该类表明不带时区的日期、时间。MonthDay:该类仅表示月日。Year:该类仅表示年。YearMonth:该类仅表明年月。ZonedDatetime:该类表明一个时区化的日期、时间。ZoneId:该类表明一个时区。DayofWeek:这是一个枚举类周一到周六的枚举。Mouth:该类也是一个枚举类,定义一月到十二月的枚举值。对象

package com.lanou.test;

import java.time.Clock;
import java.time.Instant;
import java.time.LocalDate;
import java.time.LocalDateTime;
import java.time.ZonedDateTime;

public class Demo03 {

	public static void main(String[] args) {
		// TODO Auto-generated method stub
         Clock clock=Clock.systemUTC();
         System.out.println(clock.instant());
         System.out.println(clock.millis());
         System.out.println(System.currentTimeMillis());
         Instant instant=Instant.now();
         System.out.println(instant);
         LocalDate localdate=LocalDate.now();
         System.out.println(localdate);
         LocalDateTime ldt=LocalDateTime.now();
         System.out.println(ldt);
         ZonedDateTime zdt=ZonedDateTime.now();
         System.out.println(zdt);
	}

}
相关文章
相关标签/搜索