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);
	}

}
相關文章
相關標籤/搜索