国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

從零開(kāi)始學(xué)習(xí) Java:簡(jiǎn)單易懂的入門(mén)指南之時(shí)間類(十七)

這篇具有很好參考價(jià)值的文章主要介紹了從零開(kāi)始學(xué)習(xí) Java:簡(jiǎn)單易懂的入門(mén)指南之時(shí)間類(十七)。希望對(duì)大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請(qǐng)大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問(wèn)。

第一章 Date類

1.1 Date概述

java.util.Date`類 表示特定的瞬間,精確到毫秒。

繼續(xù)查閱Date類的描述,發(fā)現(xiàn)Date擁有多個(gè)構(gòu)造函數(shù),只是部分已經(jīng)過(guò)時(shí),我們重點(diǎn)看以下兩個(gè)構(gòu)造函數(shù)

  • public Date():從運(yùn)行程序的此時(shí)此刻到時(shí)間原點(diǎn)經(jīng)歷的毫秒值,轉(zhuǎn)換成Date對(duì)象,分配Date對(duì)象并初始化此對(duì)象,以表示分配它的時(shí)間(精確到毫秒)。
  • public Date(long date):將指定參數(shù)的毫秒值date,轉(zhuǎn)換成Date對(duì)象,分配Date對(duì)象并初始化此對(duì)象,以表示自從標(biāo)準(zhǔn)基準(zhǔn)時(shí)間(稱為“歷元(epoch)”,即1970年1月1日00:00:00 GMT)以來(lái)的指定毫秒數(shù)。

tips: 由于中國(guó)處于東八區(qū)(GMT+08:00)是比世界協(xié)調(diào)時(shí)間/格林尼治時(shí)間(GMT)快8小時(shí)的時(shí)區(qū),當(dāng)格林尼治標(biāo)準(zhǔn)時(shí)間為0:00時(shí),東八區(qū)的標(biāo)準(zhǔn)時(shí)間為08:00。

簡(jiǎn)單來(lái)說(shuō):使用無(wú)參構(gòu)造,可以自動(dòng)設(shè)置當(dāng)前系統(tǒng)時(shí)間的毫秒時(shí)刻;指定long類型的構(gòu)造參數(shù),可以自定義毫秒時(shí)刻。例如:

import java.util.Date;

public class Demo01Date {
    public static void main(String[] args) {
        // 創(chuàng)建日期對(duì)象,把當(dāng)前的時(shí)間
        System.out.println(new Date()); // Tue Jan 16 14:37:35 CST 2020
        // 創(chuàng)建日期對(duì)象,把當(dāng)前的毫秒值轉(zhuǎn)成日期對(duì)象
        System.out.println(new Date(0L)); // Thu Jan 01 08:00:00 CST 1970
    }
}

tips:在使用println方法時(shí),會(huì)自動(dòng)調(diào)用Date類中的toString方法。Date類對(duì)Object類中的toString方法進(jìn)行了覆蓋重寫(xiě),所以結(jié)果為指定格式的字符串。

1.2 Date常用方法

Date類中的多數(shù)方法已經(jīng)過(guò)時(shí),常用的方法有:

  • public long getTime() 把日期對(duì)象轉(zhuǎn)換成對(duì)應(yīng)的時(shí)間毫秒值。
  • public void setTime(long time) 把方法參數(shù)給定的毫秒值設(shè)置給日期對(duì)象

示例代碼

public class DateDemo02 {
    public static void main(String[] args) {
        //創(chuàng)建日期對(duì)象
        Date d = new Date();
        
        //public long getTime():獲取的是日期對(duì)象從1970年1月1日 00:00:00到現(xiàn)在的毫秒值
        //System.out.println(d.getTime());
        //System.out.println(d.getTime() * 1.0 / 1000 / 60 / 60 / 24 / 365 + "年");

        //public void setTime(long time):設(shè)置時(shí)間,給的是毫秒值
        //long time = 1000*60*60;
        long time = System.currentTimeMillis();
        d.setTime(time);

        System.out.println(d);
    }
}

小結(jié):Date表示特定的時(shí)間瞬間,我們可以使用Date對(duì)象對(duì)時(shí)間進(jìn)行操作。

第二章 SimpleDateFormat類

java.text.SimpleDateFormat 是日期/時(shí)間格式化類,我們通過(guò)這個(gè)類可以幫我們完成日期和文本之間的轉(zhuǎn)換,也就是可以在Date對(duì)象與String對(duì)象之間進(jìn)行來(lái)回轉(zhuǎn)換。

  • 格式化:按照指定的格式,把Date對(duì)象轉(zhuǎn)換為String對(duì)象。
  • 解析:按照指定的格式,把String對(duì)象轉(zhuǎn)換為Date對(duì)象。

2.1 構(gòu)造方法

由于DateFormat為抽象類,不能直接使用,所以需要常用的子類java.text.SimpleDateFormat。這個(gè)類需要一個(gè)模式(格式)來(lái)指定格式化或解析的標(biāo)準(zhǔn)。構(gòu)造方法為:

  • public SimpleDateFormat(String pattern):用給定的模式和默認(rèn)語(yǔ)言環(huán)境的日期格式符號(hào)構(gòu)造SimpleDateFormat。參數(shù)pattern是一個(gè)字符串,代表日期時(shí)間的自定義格式。

2.2 格式規(guī)則

常用的格式規(guī)則為:

標(biāo)識(shí)字母(區(qū)分大小寫(xiě)) 含義
y
M
d
H 時(shí)
m
s

備注:更詳細(xì)的格式規(guī)則,可以參考SimpleDateFormat類的API文檔。

2.3 常用方法

DateFormat類的常用方法有:

  • public String format(Date date):將Date對(duì)象格式化為字符串。

  • public Date parse(String source):將字符串解析為Date對(duì)象。

    package com.itheima.a01jdk7datedemo;
    
    import java.text.ParseException;
    import java.text.SimpleDateFormat;
    import java.util.Date;
    
    public class A03_SimpleDateFormatDemo1 {
        public static void main(String[] args) throws ParseException {
            /*
                public simpleDateFormat() 默認(rèn)格式
                public simpleDateFormat(String pattern) 指定格式
                public final string format(Date date) 格式化(日期對(duì)象 ->字符串)
                public Date parse(string source) 解析(字符串 ->日期對(duì)象)
            */
    
            //1.定義一個(gè)字符串表示時(shí)間
            String str = "2023-11-11 11:11:11";
            //2.利用空參構(gòu)造創(chuàng)建simpleDateFormat對(duì)象
            // 細(xì)節(jié):
            //創(chuàng)建對(duì)象的格式要跟字符串的格式完全一致
            SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
            Date date = sdf.parse(str);
            //3.打印結(jié)果
            System.out.println(date.getTime());//1699672271000
    
    
        }
    
        private static void method1() {
            //1.利用空參構(gòu)造創(chuàng)建simpleDateFormat對(duì)象,默認(rèn)格式
            SimpleDateFormat sdf1 = new SimpleDateFormat();
            Date d1 = new Date(0L);
            String str1 = sdf1.format(d1);
            System.out.println(str1);//1970/1/1 上午8:00
    
            //2.利用帶參構(gòu)造創(chuàng)建simpleDateFormat對(duì)象,指定格式
            SimpleDateFormat sdf2 = new SimpleDateFormat("yyyy年MM月dd日HH:mm:ss");
            String str2 = sdf2.format(d1);
            System.out.println(str2);//1970年01月01日 08:00:00
    
            //課堂練習(xí):yyyy年MM月dd日 時(shí):分:秒 星期
        }
    }
    
    

小結(jié):DateFormat可以將Date對(duì)象和字符串相互轉(zhuǎn)換。

2.4 練習(xí)1(初戀女友的出生日期)

/*
     假設(shè),你初戀的出生年月日為:2000-11-11
     請(qǐng)用字符串表示這個(gè)數(shù)據(jù),并將其轉(zhuǎn)換為:2000年11月11日

     創(chuàng)建一個(gè)Date對(duì)象表示2000年11月11日
     創(chuàng)建一個(gè)SimpleDateFormat對(duì)象,并定義格式為年月日把時(shí)間變成:2000年11月11日
*/

//1.可以通過(guò)2000-11-11進(jìn)行解析,解析成一個(gè)Date對(duì)象
String str = "2000-11-11";
//2.解析
SimpleDateFormat sdf1 = new SimpleDateFormat("yyyy-MM-dd");
Date date = sdf1.parse(str);
//3.格式化
SimpleDateFormat sdf2 = new SimpleDateFormat("yyyy年MM月dd日");
String result = sdf2.format(date);
System.out.println(result);

2.5 練習(xí)2(秒殺活動(dòng))

/* 需求:
            秒殺活動(dòng)開(kāi)始時(shí)間:2023年11月11日 0:0:0(毫秒值)
            秒殺活動(dòng)結(jié)束時(shí)間:2023年11月11日 0:10:0(毫秒值)

            小賈下單并付款的時(shí)間為:2023年11月11日 0:01:0
            小皮下單并付款的時(shí)間為:2023年11月11日 0:11:0
            用代碼說(shuō)明這兩位同學(xué)有沒(méi)有參加上秒殺活動(dòng)?
         */

//1.定義字符串表示三個(gè)時(shí)間
String startstr = "2023年11月11日 0:0:0";
String endstr = "2023年11月11日 0:10:0";
String orderstr = "2023年11月11日 0:01:00";
//2.解析上面的三個(gè)時(shí)間,得到Date對(duì)象
SimpleDateFormat sdf = new SimpleDateFormat("yyyy年MM月dd日HH:mm:ss");
Date startDate = sdf.parse(startstr);
Date endDate = sdf.parse(endstr);
Date orderDate = sdf.parse(orderstr);

//3.得到三個(gè)時(shí)間的毫秒值
long startTime = startDate.getTime();
long endTime = endDate.getTime();
long orderTime = orderDate.getTime();

//4.判斷
if (orderTime >= startTime && orderTime <= endTime) {
    System.out.println("參加秒殺活動(dòng)成功");
} else {
    System.out.println("參加秒殺活動(dòng)失敗");
}

第三章 Calendar類

3.1 概述

  • java.util.Calendar類表示一個(gè)“日歷類”,可以進(jìn)行日期運(yùn)算。它是一個(gè)抽象類,不能創(chuàng)建對(duì)象,我們可以使用它的子類:java.util.GregorianCalendar類。
  • 有兩種方式可以獲取GregorianCalendar對(duì)象:
    • 直接創(chuàng)建GregorianCalendar對(duì)象;
    • 通過(guò)Calendar的靜態(tài)方法getInstance()方法獲取GregorianCalendar對(duì)象【本次課使用】

3.2 常用方法

方法名 說(shuō)明
public static Calendar getInstance() 獲取一個(gè)它的子類GregorianCalendar對(duì)象。
public int get(int field) 獲取某個(gè)字段的值。field參數(shù)表示獲取哪個(gè)字段的值,
可以使用Calender中定義的常量來(lái)表示:
Calendar.YEAR : 年
Calendar.MONTH :月
Calendar.DAY_OF_MONTH:月中的日期
Calendar.HOUR:小時(shí)
Calendar.MINUTE:分鐘
Calendar.SECOND:秒
Calendar.DAY_OF_WEEK:星期
public void set(int field,int value) 設(shè)置某個(gè)字段的值
public void add(int field,int amount) 為某個(gè)字段增加/減少指定的值

3.3 get方法示例

public class Demo {
    public static void main(String[] args) {
        //1.獲取一個(gè)GregorianCalendar對(duì)象
        Calendar instance = Calendar.getInstance();//獲取子類對(duì)象

        //2.打印子類對(duì)象
        System.out.println(instance);

        //3.獲取屬性
        int year = instance.get(Calendar.YEAR);
        int month = instance.get(Calendar.MONTH) + 1;//Calendar的月份值是0-11
        int day = instance.get(Calendar.DAY_OF_MONTH);

        int hour = instance.get(Calendar.HOUR);
        int minute = instance.get(Calendar.MINUTE);
        int second = instance.get(Calendar.SECOND);

        int week = instance.get(Calendar.DAY_OF_WEEK);//返回值范圍:1--7,分別表示:"星期日","星期一","星期二",...,"星期六"

        System.out.println(year + "年" + month + "月" + day + "日" + 
                           	hour + ":" + minute + ":" + second);
        System.out.println(getWeek(week));

    }

    //查表法,查詢星期幾
    public static String getWeek(int w) {//w = 1 --- 7
        //做一個(gè)表(數(shù)組)
        String[] weekArray = {"星期日", "星期一", "星期二", "星期三", "星期四", "星期五", "星期六"};
        //            索引      [0]      [1]       [2]      [3]       [4]      [5]      [6]
        //查表
        return weekArray[w - 1];
    }
}

3.4 set方法示例:

public class Demo {
    public static void main(String[] args) {
        //設(shè)置屬性——set(int field,int value):
		Calendar c1 = Calendar.getInstance();//獲取當(dāng)前日期

		//計(jì)算班長(zhǎng)出生那天是星期幾(假如班長(zhǎng)出生日期為:1998年3月18日)
		c1.set(Calendar.YEAR, 1998);
		c1.set(Calendar.MONTH, 3 - 1);//轉(zhuǎn)換為Calendar內(nèi)部的月份值
		c1.set(Calendar.DAY_OF_MONTH, 18);

		int w = c1.get(Calendar.DAY_OF_WEEK);
		System.out.println("班長(zhǎng)出生那天是:" + getWeek(w));

        
    }
    //查表法,查詢星期幾
    public static String getWeek(int w) {//w = 1 --- 7
        //做一個(gè)表(數(shù)組)
        String[] weekArray = {"星期日", "星期一", "星期二", "星期三", "星期四", "星期五", "星期六"};
        //            索引      [0]      [1]       [2]      [3]       [4]      [5]      [6]
        //查表
        return weekArray[w - 1];
    }
}

3.5 add方法示例:

public class Demo {
    public static void main(String[] args) {
        //計(jì)算200天以后是哪年哪月哪日,星期幾?
		Calendar c2 = Calendar.getInstance();//獲取當(dāng)前日期
        c2.add(Calendar.DAY_OF_MONTH, 200);//日期加200

        int y = c2.get(Calendar.YEAR);
        int m = c2.get(Calendar.MONTH) + 1;//轉(zhuǎn)換為實(shí)際的月份
        int d = c2.get(Calendar.DAY_OF_MONTH);

        int wk = c2.get(Calendar.DAY_OF_WEEK);
        System.out.println("200天后是:" + y + "年" + m + "月" + d + "日" + getWeek(wk));

    }
    //查表法,查詢星期幾
    public static String getWeek(int w) {//w = 1 --- 7
        //做一個(gè)表(數(shù)組)
        String[] weekArray = {"星期日", "星期一", "星期二", "星期三", "星期四", "星期五", "星期六"};
        //            索引      [0]      [1]       [2]      [3]       [4]      [5]      [6]
        //查表
        return weekArray[w - 1];
    }
}

后記
????????美好的一天,到此結(jié)束,下次繼續(xù)努力!欲知后續(xù),請(qǐng)看下回分解,寫(xiě)作不易,感謝大家的支持??! ??????
文章來(lái)源地址http://www.zghlxwxcb.cn/news/detail-672927.html

到了這里,關(guān)于從零開(kāi)始學(xué)習(xí) Java:簡(jiǎn)單易懂的入門(mén)指南之時(shí)間類(十七)的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來(lái)自互聯(lián)網(wǎng)用戶投稿,該文觀點(diǎn)僅代表作者本人,不代表本站立場(chǎng)。本站僅提供信息存儲(chǔ)空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請(qǐng)注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實(shí)不符,請(qǐng)點(diǎn)擊違法舉報(bào)進(jìn)行投訴反饋,一經(jīng)查實(shí),立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

覺(jué)得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請(qǐng)作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包