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

【JAVA語言-第12話】API中的工具類 之 Date,DateFormat,SimpleDateFormat,Calendar類的詳細解析

這篇具有很好參考價值的文章主要介紹了【JAVA語言-第12話】API中的工具類 之 Date,DateFormat,SimpleDateFormat,Calendar類的詳細解析。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點擊"舉報違法"按鈕提交疑問。

目錄

日期和時間

1.1 Date類

1.1.1 概述

1.1.2 常用方法?

1.1.3 案例

1.2 DateFormat類?

1.2.1 概述

1.2.2 常用方法

1.3 SimpleDateFormat類

1.3.1 概述

1.3.2 構(gòu)造方法

1.3.3 模式字符?

1.3.4 日期轉(zhuǎn)字符串

1.3.5 字符串轉(zhuǎn)日期

1.4?Calendar類

1.4.1 概述

1.4.2 靜態(tài)方法

1.4.3 常用成員方法

1.4.4 成員方法中參數(shù)field的常用取值

1.4.5 練習(xí)


日期和時間

1.1 Date類

1.1.1 概述

????????java.util.Date類:表示特定的瞬間,精確到毫秒(千分之一秒),1000毫秒=1秒。毫秒值的作用,可以對時間和日期進行計算,先把日期轉(zhuǎn)換為毫秒進行計算,計算完畢,再把毫秒轉(zhuǎn)換為日期。

1.1.2 常用方法?

構(gòu)造方法:

????????Date():獲取的就是當前系統(tǒng)的日期和時間。不格式化的情況顯示格式是中國標準時間。

????????Date(Long date):傳遞毫秒值,把毫秒轉(zhuǎn)換為Date日期。

????????

成員方法:

????????Long getTime():把日期轉(zhuǎn)換為毫秒值(相當于System.currentTimeMillis()),就是計算當前日期到時間原點之間一共經(jīng)歷了多少毫秒。

????????

注:

? ? ? ? 1.時間原點(0毫秒):1970年1月1日00:00:00。

? ? ? ? 2.中國是屬于東八區(qū),會把時間增加8個小時,時間原點為:1970年1月1日08:00:00。

? ? ? ? 3.一天 = 24 * 60 * 60 = 86400秒 = 86400 * 1000 = 86400000毫秒

1.1.3 案例

要求:獲取當前日期,將當前日期轉(zhuǎn)換成毫秒值,并將毫秒值在轉(zhuǎn)換成日期。?

?源代碼:

package com.zhy.util;

import java.util.Date;

public class TestDate {
    public static void main(String[] args) {
        Date date = new Date();
        System.out.println("獲取當前日期和時間:" + date);
        
        Long missValue = date.getTime();
        System.out.println("日期 轉(zhuǎn)換成 毫秒值:" + missValue);

        Date date2 = new Date(missValue);
        System.out.println("毫秒值 轉(zhuǎn)換成 日期:" + date2);
    }
}

輸出結(jié)果:

【JAVA語言-第12話】API中的工具類 之 Date,DateFormat,SimpleDateFormat,Calendar類的詳細解析,JAVA語言,java,開發(fā)語言

1.2 DateFormat類?

1.2.1 概述

????????java.text.DateFormat類:是日期/時間格式化子類的抽象類,我們通過這個類可以幫我們完成日期(Date對象)和文本(String對象)之間的轉(zhuǎn)換,格式化(也就是日期轉(zhuǎn)換為文本),解析(文本轉(zhuǎn)換為日期)。

1.2.2 常用方法

?????????DateFormat類是一個抽象類,無法直接創(chuàng)建對象使用,可以使用DateFormat的子類(java.text.SimpleDateFormat),常用的方法如下。

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

Date parse(String source):把符合模式的字符串,解析為Date日期。

1.3 SimpleDateFormat類

1.3.1 概述

????????SimpleDateFormat是一個用于格式化和解析日期的類。它提供了一種簡單而靈活的方式來將日期轉(zhuǎn)換為特定格式的字符串,或?qū)⒆址馕鰹槿掌趯ο蟆?/p>

1.3.2 構(gòu)造方法

格式:
????????SimpleDateFormat(String pattern);

說明:用給定的模式和默認語言環(huán)境的日期格式符號構(gòu)造SimpleDateFormat。

????????參數(shù)pattern:傳遞指定的模式。

1.3.3 模式字符?

????????SimpleDateFormat使用一系列模式字符來定義日期格式,這些模式字符可以代表年、月、日、小時、分鐘、秒等各個部分的值。通過在SimpleDateFormat的構(gòu)造函數(shù)中傳入指定的日期格式模式,我們可以創(chuàng)建一個可以格式化和解析指定日期格式的SimpleDateFormat對象。

模式 說明
y
M
d
H
m
s
S 毫秒

模式:區(qū)分大小寫的,字母不可更改,連接模式的符號可以改變。?

1.3.4 日期轉(zhuǎn)字符串

? ? ? ? 使用SimpleDateFormat類的format()成員方法實現(xiàn)。

格式:

????????String format(Date date):把日期格式化為文本(按照指定的模式,把Date日期,格式化為符合模式的字符串)。

源代碼:

package com.zhy.util;

import java.text.SimpleDateFormat;
import java.util.Date;

public class TestSimpleDateFormat {
    public static void main(String[] args){
        //1.創(chuàng)建SimpleDateFormat對象,構(gòu)造函數(shù)中傳遞指定的模式。
        SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss SSS");
        SimpleDateFormat sdf2 = new SimpleDateFormat("yyyy/MM/dd");

        //2.調(diào)用SimpleDateFormat對象中的format方法,按照構(gòu)造方法中指定的模式,把Date日期格式化為符合模式的字符串文本。
        Date date = new Date();
        System.out.println("沒有格式化的日期:" + date);

        String dateS = sdf.format(date);
        System.out.println("使用模式 yyyy-MM-dd HH:mm:ss SSS 格式化日期:" + dateS);

        String dateS2 = sdf2.format(date);
        System.out.println("使用模式 yyyy/MM/dd 格式化日期:" + dateS2);
    }
}

輸出結(jié)果:

【JAVA語言-第12話】API中的工具類 之 Date,DateFormat,SimpleDateFormat,Calendar類的詳細解析,JAVA語言,java,開發(fā)語言

1.3.5 字符串轉(zhuǎn)日期

?????????使用SimpleDateFormat類的parse()成員方法實現(xiàn)。

格式:

????????Date parse(String source):把文本解析為日期(把符合模式的字符串,解析為Date日期)。

????????

注意事項:

????????parse方法聲明了一個異常,叫做ParseException(解析異常),如果字符串和構(gòu)造方法中的模式不一樣,那么程序就會拋出此異常,也就是編譯報錯,必須要處理,要么throws繼續(xù)聲明拋出這個異常,要么try…catch自己處理這個異常。

源代碼:

package com.zhy.util;

import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;

public class TestSimpleDateFormat {
    public static void main(String[] args) throws ParseException {
        //1.創(chuàng)建SimpleDateFormat對象,構(gòu)造函數(shù)中傳遞指定的模式。
        SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
        SimpleDateFormat sdf2 = new SimpleDateFormat("yyyy/MM/dd");

        //2.調(diào)用SimpleDateFormat對象中的parse方法,把符合構(gòu)造方法中模式的字符串,解析為Date日期。
        Date date = sdf.parse("2024-01-08 11:45:08");
        System.out.println(date);

        Date date2 = sdf2.parse("2024/01/08");
        System.out.println(date2);
    }
}

輸出結(jié)果:

【JAVA語言-第12話】API中的工具類 之 Date,DateFormat,SimpleDateFormat,Calendar類的詳細解析,JAVA語言,java,開發(fā)語言

1.4?Calendar類

1.4.1 概述

????????java.util.Calendar類:日歷類,Calendar類是一個抽象類,里面提供了很多操作日歷字段的方法(YEAR、MONTH、DAY_of_MONTH、HOUR),Calendar類無法直接創(chuàng)建對象使用,里面有一個靜態(tài)方法叫g(shù)etInstance(),該方法返回了Calendar類的子類對象。

1.4.2 靜態(tài)方法

public static Calendar getInstance():使用默認時區(qū)和語言環(huán)境獲得一個日歷。

        //獲取日歷
        Calendar c = Calendar.getInstance();

1.4.3 常用成員方法

public Date getTime():返回一個Date對象,表示此日歷的時間值,默認當前日期。?

public Date setTime(Date date):將此日歷的時間設(shè)置為給定日期(date)。

package com.zhy.util;

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

public class CalendarTest {
    public static void main(String[] args) {
        //日歷
        Calendar c = Calendar.getInstance();
        //第一次獲取日歷日期,默認當前日期
        Date now = c.getTime();
        //設(shè)置 當前日歷時間 為 當前日期
        c.setTime(now);
    }
}

public void add(int field, int amount):根據(jù)日歷的規(guī)則,在給定的日歷字段中添加或減去指定的時間量。

package com.zhy.util;

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

public class CalendarTest {
    public static void main(String[] args) {;
        //日歷
        Calendar c = Calendar.getInstance();
        //第一次獲取日歷日期,默認當前日期
        Date now = c.getTime();

        //將 日歷的當前時間 設(shè)置成當前日期
        c.setTime(now);

        //1.從日歷的當前時間,減去1年
        c.add(Calendar.YEAR, -1);

        c.setTime(now);
        //2.從日歷的當前時間,加上2個月
        c.add(Calendar.MONTH, 2);

        c.setTime(now);
        //3.從日歷的當前時間,減去10天
        c.add(Calendar.DAY_OF_MONTH,-10);
    }
}

public int get(int field):返回給定 日歷字段(field)?的值。
public void set(int field,int value):將給定的 日歷字段(field)?設(shè)置為 給定值(value)。

public void set(int year, int month, int date):年月日。

public void set(int year, int month, int date, int hourOfDay, int minute):年月日時分。

public void set(int year, int month, int date, int hourOfDay, int minute,int second):年月日時分秒。

package com.zhy.util;

import java.util.Calendar;

public class CalendarTest {
    public static void main(String[] args) {
        //日歷
        Calendar c = Calendar.getInstance();

        //1.設(shè)置 日歷當前日期 的年份
        c.set(Calendar.YEAR,2025);

        //2.設(shè)置 日歷當前日期 的年月日
        c.set(2026,Calendar.MAY,19);

        //3.設(shè)置 日歷當前日期 的年月日時分
        c.set(2027,Calendar.MAY,19,12,30);

        //4.設(shè)置 日歷當前日期 的年月日時分秒
        c.set(2028,Calendar.MAY,19,12,30,59);

        //5.獲取 日歷當前日期 的年份
        int year = c.get(Calendar.YEAR);
        System.out.println(year);

        //6.獲取 日歷當前日期 的月份,取值:0-11(1月-12月)
        int month = c.get(Calendar.MONTH);//month = 4,表示5月份
    }
}

public int getFirstDayOfWeek():獲取一周的第一天,默認值=1(星期日)。

public void setFirstDayOfWeek(int value):設(shè)置一周的第一天。

package com.zhy.util;

import java.util.Calendar;

public class CalendarTest {
    public static void main(String[] args) {
        //日歷
        Calendar c = Calendar.getInstance();

        //1.獲取一周的第一天,默認 值 = 1(星期日)
        int firstDay= c.getFirstDayOfWeek();
        //2.設(shè)置一周的第一天為周一
        c.setFirstDayOfWeek(Calendar.MONDAY);
        //3.再次獲取,此時 值 = 2(星期一)
        firstDay= c.getFirstDayOfWeek();
    }
}

1.4.4 成員方法中參數(shù)field的常用取值

Calendar.ERA:紀元,取值:只能為0(代表公元前)或1(代表公元)
Calendar.YEAR:年
Calendar.MONTH:月
Calendar.DATE:一個月中的第幾天,等同于Calendar.DAY_OF_MONTH
Calendar.HOUR:12小時制下的小時數(shù),中午和午夜表示為0
Calendar.HOUR_OF_DAY:24小時制下的小時數(shù),午夜表示為0
Calendar.MINUTE:分
Calendar.SECOND:秒
Calendar.MILLISECOND:毫秒
Calendar.AM_PM=0:時間是在中午之前還是之后,取值0(中午前)和1(中午后)

????????

Calendar.DAY_OF_MONTH:一年中的第幾天(判斷當前日期是幾月份),取值0-11(1月份-12月份)
? ? 一月:Calendar.JANUARY = 0
? ? 二月:Calendar.FEBRUARY = 1
? ? 三月:Calendar.MARCH = 2
? ? 四月:Calendar.APRIL = 3
? ? 五月:Calendar.MAY = 4
? ? 六月:Calendar.JUNE = 5
? ? 七月:Calendar.JULY = 6
? ? 八月:Calendar.AUGUST = 7
? ? 九月:Calendar.SEPTEMBER = 8
? ? 十月:Calendar.OCTOBER = 9
? ? 十一月:Calendar.NOVEMBER = 10
? ? 十二月:Calendar.DECEMBER = 11
Calendar.DAY_OF_MONTH:一個月中的第幾天(判斷當前日期是幾號)
Calendar.DAY_OF_WEEK_IN_MONTH:這一天所對應(yīng)的星期幾在該月中是第幾次出現(xiàn)(判斷當前日期是這個月的第幾個星期幾)
Calendar.DAY_OF_WEEK:一周中的第幾天(判斷當前日期是周幾),取值1-7(周日-周六)
? ? 星期日:Calendar.SUNDAY=1
? ? 星期一:Calendar.MONDAY=2
? ? 星期二:Calendar.TUESDAY=3
? ? 星期三:Calendar.WEDNESDAY=4
? ? 星期四:Calendar.THURSDAY=5
? ? 星期五:Calendar.FRIDAY=6
? ? 星期六:Calendar.SATURDAY=7

????????

Calendar.WEEK_OF_YEAR:一年中的第幾個星期
Calendar.WEEK_OF_MONTH:一個月中的第幾個星期

????????

Calendar.firstDayOfWeek:一周中的第一天,默認1(星期日)

1.4.5 練習(xí)

源代碼:?

package com.zhy.util;

import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Date;

public class CalendarTest {
    public static void main(String[] args) throws ParseException {
        //日期格式化
        SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");

        //獲取日歷
        Calendar c = Calendar.getInstance();
        
        //一、獲取當前日期
        Date now = c.getTime();
        System.out.println("當前日期:" + sdf.format(c.getTime()));
        System.out.println("=============================================");

        //二、獲取本周周五的日期
        //1.設(shè)置 日歷當前時間 為當前日期
        c.setTime(now);
        //2.設(shè)置當當前日歷每周的第一天為周一,則:c.getFirstDayOfWeek()=2
        c.setFirstDayOfWeek(Calendar.MONDAY);
        //3.在 當前日期 的基礎(chǔ)上,根據(jù)公式推算 當前日期 距離周五 的天數(shù),進行日期偏移。
        //  c.get(Calendar.DAY_OF_WEEK):由于周日=1,為了符合數(shù)字和星期對應(yīng),每一天都要-1;
        //  例如:周一的c.get(Calendar.DAY_OF_WEEK)=2,減一之后c.get(Calendar.DAY_OF_WEEK)=1,后面以此類推
        c.add(Calendar.DATE, (c.getFirstDayOfWeek() - (c.get(Calendar.DAY_OF_WEEK) - 1) + 3));
        //4.格式化日期
        System.out.println("本周周五是:" + sdf.format(c.getTime()));
        System.out.println("=============================================");

        //三、獲取一年三月個后的倒數(shù)第五天的日期
        //1.設(shè)置日歷為當前日期
        c.setTime(now);
        //2.在當前日期的基礎(chǔ)上加上1年4個月
        c.add(Calendar.YEAR,1);
        c.add(Calendar.MONTH,4);
        //3.往前倒數(shù)5天,0:倒數(shù)一天,-4:倒數(shù)5天
        c.set(Calendar.DAY_OF_MONTH,-4);
        //4.格式化日期
        System.out.println("一年三個月后的倒數(shù)第五天是:" + sdf.format(c.getTime()));
    }
}

輸出結(jié)果:

【JAVA語言-第12話】API中的工具類 之 Date,DateFormat,SimpleDateFormat,Calendar類的詳細解析,JAVA語言,java,開發(fā)語言文章來源地址http://www.zghlxwxcb.cn/news/detail-787718.html

到了這里,關(guān)于【JAVA語言-第12話】API中的工具類 之 Date,DateFormat,SimpleDateFormat,Calendar類的詳細解析的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

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

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

相關(guān)文章

  • SimpleDateFormat :{ ParseException: Unparseable date} 問題原因以及解決方法

    SimpleDateFormat simpleFormat = new SimpleDateFormat(“yyyy-MM-dd hh:mm:ss”); 我所使用的與實際要轉(zhuǎn)換的不一致,導(dǎo)致報錯 在轉(zhuǎn)換的時候必須保持 轉(zhuǎn)換字符串和轉(zhuǎn)換類型格式一致 提供一個代碼片段(只是簡單做了一下判斷,只能滿足幾種日期轉(zhuǎn)換( 寫的不是很好,有待優(yōu)化 )) 參考此篇

    2024年02月14日
    瀏覽(20)
  • Java8 時間處理API(Date Time API)詳解

    在Java8之前,我們通常使用 java.util.Date 和 java.util.Calendar 類來處理日期和時間相關(guān)的操作,例如: 這種方式雖然可以實現(xiàn)功能,但是有一些缺點: 可變性: Date 和 Calendar 類都是可變的,這意味著它們的值可以被修改,這可能會導(dǎo)致一些線程安全和邏輯錯誤的問題。 可讀性差

    2024年02月11日
    瀏覽(30)
  • StringBuilder類- StringBuffer類- 正則表達式- Date類 (日期)- SimpleDateFormat類(日期格式化的類)- Calendar類 (日歷類)

    目錄 stringbuilder類 StringBuffer類 正則表達式 日期 日期格式化的類 Calendar類:(日歷類) 是一個抽象類 stringbuilder類 概念:可以改變的字符串 (這里跟string可以區(qū)分開,string創(chuàng)建的是不可改變的字符串) 底層:使用的是一個byte類型的數(shù)組,默認長度16 (string的底層使用final修

    2024年01月17日
    瀏覽(30)
  • 【ssl認證、證書】java中的ssl語法API說明(SSLContext)、與keytool 工具的聯(lián)系

    【ssl認證、證書】java中的ssl語法API說明(SSLContext)、與keytool 工具的聯(lián)系

    相關(guān)文章: //-----------Java SSL begin---------------------- 【ssl認證、證書】SSL雙向認證和SSL單向認證的區(qū)別(示意圖) 【ssl認證、證書】java中的ssl語法API說明(SSLContext)、與keytool 工具的聯(lián)系 【ssl認證、證書】SSL雙向認證java實戰(zhàn)、keytool創(chuàng)建證書 【ssl認證、證書】Wireshark抓包分析 【s

    2024年02月10日
    瀏覽(26)
  • 12個免費的API設(shè)計、開發(fā)和測試工具

    這些免費和免費層的服務(wù)和開源實用程序?qū)⑹鼓腶pi立即啟動并運行,并保持它們平穩(wěn)運行。 RESTful api的興起伴隨著創(chuàng)建、測試和管理它們的工具的興起。無論你是一個構(gòu)建第一個API的新手,還是一個在棘手的截止日期前賽跑的專家,你都有一系列的服務(wù)來幫助你 將API從概念

    2024年04月24日
    瀏覽(86)
  • java基礎(chǔ)入門-12-【API(算法,lambda表達式,練習(xí))】

    java基礎(chǔ)入門-12-【API(算法,lambda表達式,練習(xí))】

    ? 數(shù)據(jù)結(jié)構(gòu)是數(shù)據(jù)存儲的方式,算法是數(shù)據(jù)計算的方式。 ? 也叫做順序查找 ? 說明:順序查找適合于存儲結(jié)構(gòu)為數(shù)組或者鏈表。 基本思想 基本思想 :順序查找也稱為線形查找,屬于無序查找算法。從數(shù)據(jù)結(jié)構(gòu)線的一端開始,順序掃描,依次將遍歷到的結(jié)點與要查找的值

    2024年02月05日
    瀏覽(82)
  • 【Java】SimpleDateFormat格式化日期

    SimpleDateFormat 是用于以區(qū)域設(shè)置敏感的方法格式化和解析日期。它允許格式化(日期文本),解析(文本日期) 對時間日期進行格式化處理 把Date對象轉(zhuǎn)換為年月日時分秒格式字符串 把字符串轉(zhuǎn)換為Date對象 常用的模式字母及對應(yīng)關(guān)系如下:yyyy年MM月dd日HH時mm分ss秒 y 年,M 月

    2024年04月16日
    瀏覽(25)
  • Java之SimpleDateFormat的用法詳解

    在日常開發(fā)中,我們經(jīng)常會用到時間,我們有很多辦法在Java代碼中獲取時間。但是不同的方法獲取到的時間的格式都不盡相同,這時候就需要一種格式化工具,把時間顯示成我們需要的格式。 最常用的方法就是使用SimpleDateFormat類。這是一個看上去功能比較簡單的類,但是,

    2024年04月13日
    瀏覽(18)
  • (JAVA)hutool工具類-Date<——>String類型互轉(zhuǎn),加日期操作加一年、一月、一星期、一天、一分、一秒操作

    (JAVA)hutool工具類-Date<——>String類型互轉(zhuǎn),加日期操作加一年、一月、一星期、一天、一分、一秒操作

    之前小編去搜索,把時間格式轉(zhuǎn)為String類型,搜索好幾篇文章都還用 【 new SimpleDateFormat () 】 去轉(zhuǎn)換,現(xiàn)在小編用hutool里的DateUtil里的方法,簡單方便一行代碼搞定?。?結(jié)果如下: ?效果圖如下 附加如下時間加減操作: ?這些都是格式,看哪種滿足需求 英文格式轉(zhuǎn)中文格式

    2024年02月13日
    瀏覽(29)
  • 還在用Calendar操作Date?Java8都棄用了,還不知道它的這款強大的工具嗎?

    在過去的Java版本中,日期和時間的處理主要依賴于 java.util.Date 和 java.util.Calendar 類,然而隨著業(yè)務(wù)系統(tǒng)的復(fù)雜以及技術(shù)層面的提升,這些傳統(tǒng)的日期時間類暴露出了若干顯著的不足之處。隨著 Java8 的發(fā)布,其引入了一套全新的日期時間API,徹底改變了我們處理日期和時間的

    2024年03月18日
    瀏覽(31)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

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

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包