Java中的常用類:日期與時間類

Date 類

在Java的 java.util 包中,提供了一個 Date 類 用於表示日期和時間,它在 JDK 1.0版本就有,隨着版本更新,裏面的大部分方法不再推薦,在 JDK 8版本中,Date 類只有兩個構造方法是可以使用的。

Date()  獲取當前時間
Date(long date)  獲取當前時間,其中date參數表示197011000秒以來的毫秒數,就是時間戳
package com.wang.demo;

import java.util.Date;

public class DateDemo1 {
    public static void main(String[] args) {
        //獲取當前時間
        Date date1 = new Date();

        //獲取當前時間後3秒的時間
        Date date2 = new Date(System.currentTimeMillis() + 3000);

        System.out.println(date1);
        System.out.println(date2);
    }
}
--------------------------------------------------------------------------------
    結果:
    	Thu Mar 05 21:09:18 CST 2020
		Thu Mar 05 21:09:21 CST 2020

Date 類在設計之初,沒有考慮國際化的問題,因此從 JDK 1.1開始,Date 類相應的功能也被 Calendar 類中的方法所代替。

Calendar 類

Calendar 類用於完成日期和時間字段的操作,它可以通過特定的方法設置和讀取日期的特定部分,比如年,月,日,時,分和秒。Calendar 類是一個抽象類,不可以被實例化,在程序中調用靜態方法 getInstance() 來得到一個 Calendar 對象,然後才能調用相應的方法。只能獲取,不能創建。

Calendar calendar = Calendar.getInstance();

Calendar 類爲操作日期和時間提供大量的方法:

int get(int field)  獲得指定日曆字段的值
void add(int field, int amount)  根據日曆規則,爲指定的日曆字段增加或減去指定的時間量
void set(int field, int value)  爲指定日曆字段設置指定值
void set(int year, int mount, int date)  設置Calendar對象的年,月,日
void set(int year, int mount, int date, int hourOfDay, int minute, int second)
設置Calendar對象的年,月,日,時,分,秒

參數 field 需要接收 Calendar 類中定義的常量值,分別表示不同的字段,Calendar.YEAR表示年份,Calendar.MONTH表示月份,Calendar.SECOND表示秒。在使用 Calendar.MONTH 字段時,月份的起使值是從0開始的,所以獲取當前的月份需要在 Calendar.MONTH 的基礎上加 1。

package com.wang.demo;

import java.util.Calendar;

public class DateDemo2 {
    public static void main(String[] args) {
        //獲取當前時間的 Calendar對象
        Calendar calendar = Calendar.getInstance();
        int year = calendar.get(Calendar.YEAR);  //年份
        int month = calendar.get(Calendar.MONTH) + 1;  //月份
        int date = calendar.get(Calendar.DATE);  //當前日
        int hour = calendar.get(Calendar.HOUR);  //時
        int minute = calendar.get(Calendar.MINUTE);  //分
        int second = calendar.get(Calendar.SECOND);  //秒

        System.out.println("當前時間爲:" + year + "年" + month + "月" + date + "日"
                + hour + "時" + minute + "分" + second + "秒");
    }
}
----------------------------------------------------------------------------
    結果:
    	當前時間爲:202035103010

除了獲取當前時間以外,還會要設置或修改某個時間,添加和修改時間的功能就可以通過 Calendar 類中的 add()set() 方法實現。

package com.wang.demo;

import java.util.Calendar;

public class DateDemo3 {
    public static void main(String[] args) {
        //獲取表示當前時間的 Calendar對象
        Calendar calendar = Calendar.getInstance();
        //設置指定日期
        calendar.set(2020, 2, 1);
        //在指定日期基礎上增加時間
        calendar.add(Calendar.DATE, 150);

        int year = calendar.get(Calendar.YEAR); //返回年份
        int month = calendar.get(Calendar.MONTH); //返回月份
        int date = calendar.get(Calendar.DATE); //返回日數

        System.out.println("增加時間後的日期:" + year + "年" + month + "月" + date + "日");
    }
}
---------------------------------------------------------------------------------
    結果:
    	增加時間後的日期:2020629

JDK 8 的日期和時間類

爲了滿足需求,JDK 8 比之前版本增加一個 java.time 包,在該包下包含了更多的日期和時間操作類。

注意:通過 clock.instant()Instacant.now() 獲取當前時間與本地系統顯示時間有8個小時的時差,因爲 Instant 默認使用的是 UTC(Universal Time Coordinated) 世界協調時間,又稱爲世界標準時間,UTC 提供了一種與時區無關的時間,與 CST(China Standard Time) 中國標準時間 (北京時間) 有8個小時的時差。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章