中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

Java中Date類如何設置與操作時間

發布時間:2022-03-14 09:25:06 來源:億速云 閱讀:1816 作者:小新 欄目:開發技術

這篇文章將為大家詳細講解有關Java中Date類如何設置與操作時間,小編覺得挺實用的,因此分享給大家做個參考,希望大家閱讀完這篇文章后可以有所收獲。

Date

顧名思義,Date就是關于時間的一個類,這個類主要就是一些對時間的設置以及操作,查閱官方文檔可知,Date類繼承自java.lang.Object 類,相關的構造方法如下:

構造方法:

Date():無參構造,分配一個 Date對象并將它初始化,它代表的時間分配給它,測量精確到毫秒:

import java.util.Date;   //因為這個類屬于util包內,所以需要事先導入
Date d = new Date();    //無參構造,創建對象
System.out.println(d);

//輸出: Fri Jan 14 10:22:58 CST 2022    CST為中國標準時間
//若直接使用無參構造,其實就是輸出當前的系統時間

Date(long date) :有參構造

首先一秒等于1000毫秒,這個有參構造就是分配一個 Date對象并將它初始化為代表指定的毫秒數自基準時間被稱為格林威治時間,即1970年1月1日,00:00:00 GMT。 也就是傳入一個毫秒數,然后從1970年1月1日,00:00:00 開始增加輸入的時間:

//有參構造

Date d = new Date(5000);  //5000毫秒等于5秒
System.out.println(d);

//輸出:Thu Jan 01 08:00:05 CST 1970
//為什么我這里數輸出08:00:05呢?  注意看,我的是CST中國標準時間,中國屬于東八區,所以需要+8
//其實換算到GMT(格林威治時間)就是-8,也就是00:00:05,沒有問題的

Date類的方法:

getTime(): 來獲取毫秒數,其返回值類型是long,其可以把日期對象轉成毫秒值

System.out.println(d.getTime());

//輸出:1642127814408
//這個數值就是從1970-1-1 00:00:00開始計算的毫秒值

hashCode():返回此對象的哈希代碼值,其實這個用處不大,了解即可

System.out.println(d.hashCode());

//輸出:1450437638  哈希嗎值

equals(Object obj) :比較兩個相等的日期

Date d = new Date();
Date c = new Date();
System.out.println(d.equals(c));

//輸出:true,因為同時創建了兩個對象,都是當前時間,因為計算機運行速度很快,甚至沒有一毫秒
//所以兩個時間是相同的

after(Date when):測試如果這個日期是在指定日期之后返回true,否則false

before(Date when) :測試如果這個日期是在指定日期之前返回true,否則false

這兩個方法大家可以自行去試試~~~

但是我們會發現,Date類不能輸出類似于普遍的時間格式:比如2021年01=年01日 13時00分 所以我們需要Calenda類。

Calenda:

calendar類位于java.util包中,它提供多個方法獲取,設置,增加日歷字段值,比Date類更強大,

calendar是抽象類,所以不能直接使用new去新建對象。

所以我們需要使用到GregorianCalendar類,這個類也是Calenda的子類,提供了世界上大多數使用標準的日歷系統。

Java中Date類如何設置與操作時間

使用該類獲得當前年份、月份和當前是周幾的代碼:

GregorianCalendar g = new GregorianCalendar();   //新建一個GregorianCalendar 對象
int year = g.get(Calendar.YEAR);
int month = g.get(Calendar.MONTH);  //使用GregorianCalendar 的get方法,獲取當前月份
int day = g.get(Calendar.DAY_OF_MONTH);   //使用GregorianCalendar 的get方法,獲取當前日期
System.out.println(year+"年"+month+"月"+day+"日");

//輸出:2022年0月14日
//解釋:月份是從0開始計算的,所以0代表一月,11代表12月。月份返回為0-11
//解決方法:
System.out.println(year+"年"+(month+1)+"月"+day+"日");  //在月份后面+1即可
//輸出:2022年1月14日

get方法:

也可以使用GregorianCalendar 輸出更具體的時間格式:

比如輸出年月日時分秒,這也是一般網頁和系統都會顯示的時間:(完整代碼)

package DateTest;

import java.util.Date;
import java.util.Calendar;
import java.util.GregorianCalendar;

public class test01 {
    public static void main(String[] args) {

        Date a = new Date();
        GregorianCalendar g = new GregorianCalendar();

        int year = g.get(Calendar.YEAR);
        int month = g.get(Calendar.MONTH);
        int day = g.get(Calendar.DAY_OF_MONTH);
        int hour = g.get(Calendar.HOUR_OF_DAY);
        int min = g.get(Calendar.MINUTE);
        int second = g.get(Calendar.SECOND);

        System.out.println(year+"年"+(month+1)+"月"+day+"日"+hour+"時"+min+"分"+second+"秒");
        
    }
}

//輸出:2022年1月14日11時14分36秒     這樣是不是就是時間輸出的理想格式呢
//這也是我在寫這個博客的時間~~~

set方法:

上面我們用到的是get方法,那當然也有對應的set方法,來設置一下自定義的時間:

以設置為2020年1月1日為例:

//這部分代碼還是以上面get方法的代碼為基礎

g.set(Calendar.YEAR,2020);
g.set(Calendar.MONTH,0);   //千萬不要忘了月份的起始值為 0,0代表一月
g.set(Calendar.DAY_OF_MONTH,1);

//當set完后,再去使用get方法去獲取,那么獲取到的就是修改后的時間了

//輸出:2020年1月1日

但是在設置時間中若把月份輸入大于11或者天數設置大于30天或31天(2月大于28天),那么將會自動往前進一:

g.set(Calendar.YEAR,2020);
g.set(Calendar.MONTH,0);
g.set(Calendar.DAY_OF_MONTH,35);   //日期輸入35天

//輸出:2020年2月4日
//輸入是1月份,但是天數大于真實一個月的天數,所以會增加一個月

SimpleDateFormat:

但是在實際應用過程中,可能對時間的格式要求不一樣,比如有:

  • 2020/01/01 12:00:00

  • 2020-01-01 星期* 上/下午

  • 2020年01月01日 12時00分00秒 ----------等等

所以我們不可能在每一次需要不一樣的格的時候再去重新寫代碼,所以Java提供了這個SimpleDateFormat類:

Java中Date類如何設置與操作時間

這個類屬于text包下,所以使用前需要導入,分別繼承自Object、Format、DateFormat類,這個類的一些格式符號如下圖:

Java中Date類如何設置與操作時間

回到前面,我們如果需要打印不同的格式時間,該怎么做呢? 我們先來看看SimpleDateFormat的構造方法:

Java中Date類如何設置與操作時間

先看第二個:SimpleDateFormat(String pattern) :使用給定的模式和默認的日期格式符號默認 FORMAT現場構建了一個 SimpleDateFormat,意思是根據你給定的格式符號來創建這個時間的對象。

public static String dateToString(Date d,String pattern){   //新建一個靜態方法
	
	SimpleDateFormat s = new SimpleDateFormat(pattern);    //有參構造
	String time = s.format(d); 
	//SimpleDateFormat的format方法:給定的 Date進入日期/時間線和附加的結果給出的 StringBuffer格式。 
	return time;   //返回時間

}

代碼解釋:其實這個方法就是傳入一個Date類的時間,和SimpleDateFormat有參構造方法需要的一個參數pattern,也就是格式符,根據上那張表格查看需要什么格式即可,然后使用format方法即可。

完整代碼:

import java.text.SimpleDateFormat;   //記得要導入哦
import java.util.Date;

public class test03 {

    public static void main(String[] args) {
        Date d = new Date();   //創建方法需要的對象Date d
        String t = dateToString(d,"yyyy-MM-dd HH:mm:ss: E a");  //E代表周幾,a代表上/下午
        System.out.println(t);  //使用方法
    }

//方法區
    public static String dateToString(Date d,String pattern){
        SimpleDateFormat s = new SimpleDateFormat(pattern);
        String time = s.format(d);
        return time;
    }

}

如果我們需要輸出別的格式:

"yyy年MM月dd日 HH時mm分ss秒 E a"
//輸出:2022年01月14日 15時45分06秒 星期五 下午

"yyyy/MM/dd HH:mm:ss E a"
//輸出:2022/01/14 15:45:36 星期五 下午

"MM/dd/yyyy HH:mm:ss"  //甚至把年份方后面
//輸出:01/14/2022 15:46:24
//可以根據需要,結合上面的符號表,去自定義想要的時間格式啦~~~~

關于“Java中Date類如何設置與操作時間”這篇文章就分享到這里了,希望以上內容可以對大家有一定的幫助,使各位可以學到更多知識,如果覺得文章不錯,請把它分享出去讓更多的人看到。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

论坛| 会东县| 伊吾县| 蓝山县| 金川县| 芮城县| 扶沟县| 浦县| 青阳县| 遂昌县| 额尔古纳市| 高密市| 达州市| 象山县| 定兴县| 天门市| 崇礼县| 武山县| 滁州市| 固原市| 鄂托克旗| 彭水| 文化| 孟州市| 惠水县| 汉沽区| 抚远县| 内乡县| 普陀区| 奈曼旗| 连云港市| 明光市| 南漳县| 潜山县| 常山县| 乌拉特中旗| 武陟县| 浦城县| 佛坪县| 中山市| 奉化市|