最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

JAVA學(xué)習(xí)進階篇之時間與日期相關(guān)類

 更新時間:2022年09月01日 15:54:37   作者:幾分醉意.  
在日常的開發(fā)工作當(dāng)中,我們經(jīng)常需要用到日期相關(guān)的類,下面這篇文章主要給大家介紹了關(guān)于JAVA學(xué)習(xí)進階篇之時間與日期相關(guān)類的相關(guān)資料,文中通過實例代碼介紹的非常詳細,需要的朋友可以參考下

Date類

java.util.Date:表示日期和時間的類,Date 表示特定的瞬間,精確到毫秒。

毫秒值的概念與作用

毫秒:千分之一秒,1000毫秒=1。
秒特定的瞬間:一個時間點,一剎那時間
例如:
2088-08-08 09:55:33:333瞬間
2088-08-0809:55:33:334瞬間
2088-08-08 09:55:33:335瞬間

毫秒值的作用:可以對時間和日期進行計算。
2022-01-01到2088-01-01中間一共有多少天?
可以日期轉(zhuǎn)換為毫秒進行計算,計算完畢,在把毫秒轉(zhuǎn)換為日期。

把日期轉(zhuǎn)換為毫秒:
當(dāng)前的日期:2022-08-28
時間原點(0毫秒):1970年1月1日00:00:00(英國格林威治)
就是計算當(dāng)前日期到時間原點之間一共經(jīng)歷了多少毫秒(374267540068L)
注意:
中國屬于東八區(qū),會把時間增加8個小時1970年1月1日08:00:00

把毫秒轉(zhuǎn)換為日期:
1天=24x60x60=86400秒=86400x1000=86400000毫秒

構(gòu)造方法

學(xué)習(xí)類都是一個過程,先學(xué)習(xí)這個類的構(gòu)造方法;有了構(gòu)造方法后,就可以創(chuàng)建對象,然后通過對象調(diào)用它里面的成員方法。

無參構(gòu)造

public static void main(String[] args) {
        //Data的空參數(shù)構(gòu)造方法-Data()獲取當(dāng)前系統(tǒng)的時間(精確到毫秒的系統(tǒng)當(dāng)前時間)
        Date date = new Date();
        //java.util.Date類的toString()方法已經(jīng)被重寫了
        //所以直接輸出對象,不是這個對象的內(nèi)存地址,而是一個日期字符串
        System.out.println(date); //輸出:Sun Aug 28 21:18:47 CST 2022
    }

有參構(gòu)造

public static void main(String[] args) {
        // Date類的帶參數(shù)構(gòu)造方法
        //Date(long date) :傳遞毫秒值轉(zhuǎn)換為Date日期
        Date date = new Date(0L); //把參數(shù)里面的毫秒轉(zhuǎn)成對應(yīng)的日期
        System.out.println(date); //輸出:Thu Jan 01 08:00:00 CST 1970

        Date date1 = new Date(1620543792746L); //把參數(shù)里面的毫秒轉(zhuǎn)成對應(yīng)的日期
        System.out.println(date1); //輸出:Sun May 09 15:03:12 CST 2021
    }

成員方法getTime()

public static void main(String[] args) {
        // Long getTime()把日期轉(zhuǎn)換為毫秒值(相當(dāng)于System.currentTimeMillis()方法)
        // 返回自1970年 1月一日 00:00:00 到當(dāng)前系統(tǒng)時間一共經(jīng)歷了多少毫秒
        Date date = new Date();
        long time = date.getTime();
        System.out.println(time); //1661693372684
    }

currentTimeMillis方法

此方法是System類的一個方法,作用和getTime()一樣,返回自1970年 1月一日 00:00:00
到當(dāng)前系統(tǒng)時間一共經(jīng)歷了多少毫秒。

public static void main(String[] args) {
        Long TimeMillis = System.currentTimeMillis();
        System.out.println(TimeMillis); //輸出:1661693849165
    }

那么這個方法可以用來干什么呢?

看的出來,經(jīng)過測試,下列代碼空循環(huán)一億次,用了3毫秒

public static void main(String[] args) {
        //統(tǒng)計一個方法的耗時
        //在調(diào)用目標(biāo)方法之前記錄一個毫秒數(shù)
        Long TimeMillis = System.currentTimeMillis();
        //這里調(diào)用方法
        print();
        //在執(zhí)行完目標(biāo)方法之后記錄一個毫秒數(shù)
        Long end = System.currentTimeMillis();

        System.out.println("耗費時長:"+(end-TimeMillis)+"毫秒"); //輸出:耗費時長:3毫秒
    }

    public static void print(){
        for (int i = 0; i < 100000000; i++) {
            
        }
    }

DateFormat和SimpleDateFormat類

DateFormat類和它的子類SimpleDateFormat,后者是前者的子類,所以它有父類的format和parse方法。

java.text.DateFormat:是日期/時間格式化子類的抽象類。
作用: 格式化(也就是日期->文本) 、解析(文本->日期)

構(gòu)造方法

DateFormat類是一個抽象類,無法直接創(chuàng)建對象使用,可以使用DateFormat類的子類
java.text.SimpleDateformat extends DateFormat
構(gòu)造方法:
SimpleDateFormat(String pattern):用給定的模式和默認語言環(huán)境的日期格式符號構(gòu)造SimpleDateFormat。
參數(shù): String pattern:傳遞指定的模式

模式:區(qū)分大小寫

y
M
d
H
m
s

寫對應(yīng)的模式,會把模式替換為對應(yīng)的日期和時間 “yyyy-MM-dd HH:mm:ss”
注意:
模式中的字母不能更改,連接模式的符號可以改變"yyyy年MM月dd日 HH時mm分ss秒"

成員方法

String format(Date date)按照指定的模式,把Date日期,格式化為符合模式的字符串
Date parse(String source)把符合模式的字符串,解析為Date日期

使用這兩個成員方法及其細節(jié)

public static void main(String[] args) throws ParseException {
        demo01();
        demo02(); //調(diào)用的方法也會出紅線,也要光標(biāo)放紅線上alt+回車選擇第一個
    }

    private static void demo01() {
        //使用DateFormat類中的format方法,把日期格式轉(zhuǎn)化為文本
        //1.創(chuàng)建SimpleDateFormat對象,構(gòu)造方法中傳遞指定的模式
        SimpleDateFormat sdf = new SimpleDateFormat("yyyy年mm月dd日 HH時mm分ss秒");//傳入指定的模式
        //2.調(diào)用SimpleDateFormat對象中的方法format,按照構(gòu)造方法中指定的模式,把Date日期格式轉(zhuǎn)換為符合模式的字符串(文本)
        //String format(Date date) 按照指定模式,把Date日期,格式化為符合模式的字符串
        Date date =new Date(); //獲取當(dāng)前系統(tǒng)時間
        String format = sdf.format(date);
        System.out.println(date); //Sun May 09 16:09:50 CST 2021
        System.out.println(format); //2021年09月09日 16時09分50秒
    }


    /*
        使用DateFormat類中的parse方法,把文本解析成為Date日期
        1.創(chuàng)建SimpleDateFormat對象,構(gòu)造方法中傳遞指定的模式
        2.調(diào)用SimpleDateFormat對象中的方法parse,把符合構(gòu)造方法中模式的字符串,解析為Date日期
        注意:
            public Date parse(String source)throws ParsejException
            parse方法聲明一個異常叫ParseException
            如果字符串和構(gòu)造方法的模式不一樣,那么程序就會拋出異常
            調(diào)用一個拋出異常的方法,就必須的處理這個異常
            要么throws繼續(xù)拋出這個異常,要么try catch自己處理
            出現(xiàn)紅色的線,有異常,光標(biāo)放紅線上alt+回車選擇第一個;調(diào)用的方法也會出紅線,也要光標(biāo)放紅線上alt+回車選擇第一個
            這就是在我的方法聲明這個異常,我不處理,我聲明一下
            程序沒有問題,正常執(zhí)行
            出現(xiàn)問題,打印異常,并終止程序
     */
    private static void demo02() throws ParseException {

        //使用DateFormat類中的parse方法,把文本解析成為Date日期
        //1.創(chuàng)建SimpleDateFormat對象,構(gòu)造方法中傳遞指定的模式
        SimpleDateFormat sdf = new SimpleDateFormat("yyyy年mm月dd日 HH時mm分ss秒");//傳入指定的模式

        //Date parse(String source) 把符合,模式的字符串,解析為Date日期
        //2.調(diào)用SimpleDateFormat對象中的方法parse,把符合構(gòu)造方法中模式的字符串,解析為Date日期
        /*
        出現(xiàn)紅色的線,有異常,光標(biāo)放紅線上alt+回車選擇第一個;調(diào)用的方法也會出紅線,也要光標(biāo)放紅線上alt+回車選擇第一個
        這就是在我的方法聲明這個異常,我不處理,我聲明一下
         */
//        把字符串類型按照傳入構(gòu)造模式解析成為Date類型,傳入指定模式和字符串要一樣,字符串這邊少個秒就報錯
        Date parse = sdf.parse("2021年09月09日 16時09分50秒");
        System.out.println(parse);//Sat Jan 09 16:09:50 CST 2021
    }

練習(xí)

public static void main(String[] args) throws ParseException {
        Scanner scanner = new Scanner(System.in); // 輸入:2001-07-02 
        System.out.println("請輸入出生日期(格式為yyyy-mm-dd):");
        String next = scanner.next(); //拿到字符串出生日期

        SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-mm-dd");
        Date parse = simpleDateFormat.parse(next); //把字符串出生日期解析成為DAte格式
        long ee = parse.getTime(); // 把Date格式的出生日期轉(zhuǎn)換為毫秒值

        Date aa = new Date(); //獲取當(dāng)前日期毫秒值
        long hh = aa.getTime(); //把當(dāng)前日期毫秒值轉(zhuǎn)換成為毫秒值
//        Date aa = new Date().getTime(); 一步到位 匿名

        long dd = hh-ee; //差值
        long jj = dd/1000/60/60/24; //把毫秒值轉(zhuǎn)換成為天
        System.out.println(jj); // 輸出:7908。 代表著 2001-07-02 到今天已經(jīng)過了7908天
//        System.out.println(dd/1000/60/60/24); //一步到位

    }

 總結(jié)

到此這篇關(guān)于JAVA學(xué)習(xí)進階篇之時間與日期相關(guān)類的文章就介紹到這了,更多相關(guān)JAVA時間日期相關(guān)類內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • Java反應(yīng)式框架Reactor中的Mono和Flux

    Java反應(yīng)式框架Reactor中的Mono和Flux

    這篇文章主要介紹了Java反應(yīng)式框架Reactor中的Mono和Flux,本文給大家介紹的非常詳細,對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2021-07-07
  • 貪心算法原理及在Java中的使用

    貪心算法原理及在Java中的使用

    我們可能在好多地方都會聽到貪心算法這一概念,并且它的算法思想也比較簡單就是說算法只保證局部最優(yōu),進而達到全局最優(yōu)。但我們實際編程的過程中用的并不是很多,究其原因可能是貪心算法使用的條件比較苛刻,所要解決的問題必須滿足貪心選擇性質(zhì)
    2021-05-05
  • Java如何把數(shù)組轉(zhuǎn)換為ArrayList

    Java如何把數(shù)組轉(zhuǎn)換為ArrayList

    這篇文章主要介紹了Java如何把數(shù)組轉(zhuǎn)換為ArrayList,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下
    2020-01-01
  • SpringCloud學(xué)習(xí)筆記之SpringCloud搭建父工程的過程圖解

    SpringCloud學(xué)習(xí)筆記之SpringCloud搭建父工程的過程圖解

    SpringCloud是分布式微服務(wù)架構(gòu)的一站式解決方案,十多種微服務(wù)架構(gòu)落地技術(shù)的集合體,俗稱微服務(wù)全家桶,這篇文章主要介紹了SpringCloud學(xué)習(xí)筆記(一)搭建父工程,需要的朋友可以參考下
    2021-10-10
  • 解決maven打包失敗:程序包xxxx不存在問題

    解決maven打包失敗:程序包xxxx不存在問題

    這篇文章主要介紹了解決maven打包失敗:程序包xxxx不存在問題,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2022-03-03
  • Java如何使用流去除集合中某個字段為空的對象

    Java如何使用流去除集合中某個字段為空的對象

    這篇文章主要給大家介紹了關(guān)于Java如何使用流去除集合中某個字段為空的對象,文中通過示例代碼介紹的非常詳細,對大家學(xué)習(xí)或者使用Java具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下
    2023-08-08
  • Groovy的規(guī)則腳本引擎實例解讀

    Groovy的規(guī)則腳本引擎實例解讀

    這篇文章主要介紹了Groovy的規(guī)則腳本引擎實例解讀,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2023-03-03
  • spring?boot集成jasypt?并實現(xiàn)自定義加解密的詳細步驟

    spring?boot集成jasypt?并實現(xiàn)自定義加解密的詳細步驟

    由于項目中的配置文件?配置的地方過多,現(xiàn)將配置文件統(tǒng)一放到nacos上集中管理?且密碼使用加密的方式放在配置文件中,配置文件的加密使用加密庫jasypt,本文給大家介紹spring boot集成jasypt并實現(xiàn)自定義加解密,感興趣的朋友一起看看吧
    2023-08-08
  • Java超詳細講解如何生成隨機整數(shù)

    Java超詳細講解如何生成隨機整數(shù)

    在?Java?中,生成隨機數(shù)的場景有很多,所以本文我們就來盤點一下?幾種生成隨機數(shù)的方式,以及它們之間的區(qū)別和每種生成方式所對應(yīng)的場景
    2022-05-05
  • Java 細致圖解帶你分析漢諾塔

    Java 細致圖解帶你分析漢諾塔

    漢諾塔問題是一個經(jīng)典的問題。漢諾塔(Hanoi Tower),又稱河內(nèi)塔,源于印度一個古老傳說。本文將用Java求解這一問題,感興趣的可以學(xué)習(xí)一下
    2022-03-03

最新評論

藁城市| 大庆市| 衡东县| 景泰县| 黔南| 盐池县| 英吉沙县| 夹江县| 夹江县| 阿拉善右旗| 天镇县| 上高县| 阿合奇县| 玉门市| 龙口市| 富宁县| 绵阳市| 高清| 华坪县| 溧水县| 阜阳市| 万盛区| 离岛区| 鹿泉市| 宁海县| 绥滨县| 合肥市| 锡林浩特市| 肃宁县| 库伦旗| 泰来县| 五寨县| 镇安县| 锦屏县| 兴义市| 桂阳县| 黄山市| 宝鸡市| 山阳县| 驻马店市| 新兴县|