21、java中和日期相關的類

來源:互聯網
上載者:User

標籤:

一、Data及其常用API

1、簡介

  Java中的時間使用標準類庫的java.util.Date,其表示特定的瞬間,精確到毫秒。是用距離一個固定時間點的毫秒數(可正可負,long類型)表達一個特定的時間點。

固定的時間點叫紀元(epoch),是UTC時間1970年 1月 1日 00:00:00  ,UTC(Universal Time Coordinated世界調整時間)與GMT(Greenwich Mean Time格林威治時間)一樣,是一種具有實際目的的科學標準時間。

  因為Date的設計具有"千年蟲"以及"時區"的問題,所以Date中的大部分方法已經不建議使用了,它們都被java.util.Calendar類所取代,該類我們稍後會講解。

2、建構函式

  ①:new Date() :返回系統目前時間的Date對象

  ②:new Date(long date):給定指定毫秒數,返回Date對象

  ③:new Date(int year, int month,int date) :根據年月日返回Date對象

     注意:year:107表示2007年   年份=1900+year   。例如要表示2015年,則year=2015-1900=115

             month:0表示1月        月份=month+1     。例如要表示6月,則month=6-1=5 。如果月份大於11會產生向年份進位。

      date:日如果大於該月的最大值時,同樣會向月進位

  ④:new Date(int year,int  month,int  date,int  hrs,int  min)

  ⑤:new Date(int year,int  month,int  date,int  hrs,int  min,int  sec)

      注意:時分秒同樣也會產生進位

3、常用方法

  ①:setTime(long time) 設定一個時間,long表示的這個時間點距離1970年1月1日 00:00:00之間的毫秒差。

  ②:getTime():擷取該時間距離1970年1月1日 00:00:00之間的毫秒差

 

二、SimpleDateFormat

1、簡介

  SimpleDateFormat 是一個以與語言環境有關的方式來格式化和解析日期的具體類。它允許進行格式化(日期 -> 文本)、解析(文本 -> 日期)和正常化。

 

2、日期模式比對字元串

字元 含義 樣本
y yyyy年---2015年
M MM月--03月
d dd日--12日
E 星期 E--星期日
a 上下午 a--上午(AM)
H 24小時制 HH時--16時
h 12小時制 hh時--04時
m mm--23分
s ss--59秒
S 毫秒 SSS毫秒-567毫秒

  例如yyyy-MM-dd HH:mm:ss.SSS可以匹配2015-06-02 14:32:13.546

 

3、將Date轉換成String

Date date=new Date();SimpleDateFormat sdf=new SimpleDateFormat("yyyy-MM-dd HH:mm:ss.SSS");System.out.println(sdf.format(date)); 

 

4、將String轉換成Date

SimpleDateFormat sdf=new SimpleDateFormat("yyyy-MM-dd HH:mm:ss.SSS");Date date =sdf.parse("2015-06-02 14:35:36.000");System.out.println(date); 

 

三、Calendar類

1、簡介

  java.util.Calendar 類用於封裝行事曆資訊,其主要作用在於其方法可以對時間分量進行運算。

Calendar是抽象類別,其具體子類針對不同國家的日曆系統,其中應用最廣泛的是GregorianCalendar(格裡高裡曆,即通用的陽曆),對應世界上絕大多數省/地區使用的標準日曆系統。

2、 getInstance()方法

Calendar是抽象類別,其提供了一個Factory 方法:Calendar getInstance()。該方法可以根據當前系統所在地區擷取一個適當的Calendar的子類實現。

在實際開發中,也推薦使用該方法來執行個體化Calendar的對象。

SimpleDateFormat sdf=new SimpleDateFormat("yyyy-MM-dd HH:mm:ss.SSS");Calendar calendar=Calendar.getInstance();System.out.println(sdf.format(calendar.getTime()));

3、設定日期及時間分量

  Calendar提供了一種通用的設定時間的方式:

  void set(int field,int value)

  該方法可以通過對不同的時間分量分別設定不同的值。Calendar對不同的時間分量提供了相應的常量,我們在使用set方法設定時,第一個參數就應當使用對應的常量作為時間分量。

  注意:分量month同樣從0開始,分量也有進位的可能

4、setTime與getTime

  設定和擷取的對象都是Data類型,而Date對象對應的這兩個方法,是long類型的

5、void add(int field,int amount)

  該方法可以為某個時間分量的值加上給定的值,若想減去給定的值,那麼傳入的值需要時負數即可。並且計算後會自動進行相應的進位。

6、int  getActualMaximum(int field)

  擷取該分量的最大值

 

21、java中和日期相關的類

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.