欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

java字符串日期類Date和Calendar相互轉(zhuǎn)化及相關(guān)常用方法

 更新時(shí)間:2023年12月22日 11:58:35   作者:great-sun  
Java語言的Calendar(日歷),Date(日期),和DateFormat(日期格式)組成了Java標(biāo)準(zhǔn)的一個(gè)基本但是非常重要的部分,下面這篇文章主要給大家介紹了關(guān)于java字符串日期類Date和Calendar相互轉(zhuǎn)化及相關(guān)常用方法的相關(guān)資料,需要的朋友可以參考下

Java中,可以通過以下方法將字符串轉(zhuǎn)換為Date:

String dateString = "2023-07-28";
DateFormat format = new SimpleDateFormat("yyyy-MM-dd");
Date date = format.parse(dateString);

在這個(gè)例子中,我們將一個(gè)字符串類型的日期轉(zhuǎn)換為Date對(duì)象。需要注意的是,我們需要使用SimpleDateFormat類來指定日期格式。

同樣地,我們也可以將Date轉(zhuǎn)換為字符串:

Date date = new Date();
DateFormat format = new SimpleDateFormat("yyyy-MM-dd");
String dateString = format.format(date);

Java中,可以通過以下方法將Date轉(zhuǎn)換為Calendar:

Date date = new Date();
Calendar calendar = Calendar.getInstance();
calendar.setTime(date);

在這個(gè)例子中,我們將當(dāng)前時(shí)間的Date對(duì)象轉(zhuǎn)換為Calendar對(duì)象。需要注意的是,我們需要使用Calendar.getInstance()方法來獲取一個(gè)Calendar實(shí)例。

同樣地,我們也可以將Calendar轉(zhuǎn)換為Date:

Calendar calendar = Calendar.getInstance();
Date date = calendar.getTime();

在這個(gè)例子中,我們將當(dāng)前時(shí)間的Calendar對(duì)象轉(zhuǎn)換為Date對(duì)象。需要注意的是,我們需要使用Calendar.getTime()方法來獲取一個(gè)Date實(shí)例。

除了轉(zhuǎn)換之外,Date和Calendar類還有許多常用的方法。以下是一些常見的方法:

  • Date類方法getTime():返回自1970年1月1日00:00:00 GMT以來的毫秒數(shù)。
  • toString():返回一個(gè)表示此日期的字符串。
  • before(Date when):如果此日期在when之前,則返回true。
  • after(Date when):如果此日期在when之后,則返回true。
  • Calendar類方法get(int field):返回給定日歷字段的值。
  • set(int field, int value):將給定日歷字段設(shè)置為給定值。
  • add(int field, int amount):將給定的時(shí)間量添加到給定的日歷字段中。
  • getTime():返回一個(gè)表示此Calendar時(shí)間值(從歷元到現(xiàn)在的毫秒偏移量)的Date對(duì)象。
  • toString():返回一個(gè)表示此Calendar時(shí)間值(從歷元到現(xiàn)在的毫秒偏移量)的字符串表示形式

附:加減日期

截止目前已經(jīng)完成了 String Date Calendar 互轉(zhuǎn)了。(Calendar 到 String 恐怕只能通過 Date 中轉(zhuǎn)一下,我沒有發(fā)現(xiàn)任何無需借助 Date 的方法)

接下來該實(shí)現(xiàn)按格式輸入字符串日期,任意加減天數(shù)的需求了,用到 Calendar 的成員方法:public abstract void add(int field, int amount).

它能在 field 代表的時(shí)間字段上加 amount 個(gè)單位(可以為負(fù)數(shù))。字段同樣使用 Calendar 的靜態(tài)成員變量。結(jié)合例子很容易理解:

public static void main(String[] args) {
    Calendar calendar = Calendar.getInstance();
    System.out.println(calendar.getTime().toString());  // Mon Aug 15 18:19:55 CST 2022

    calendar.add(Calendar.YEAR, 2);                     // Mon Aug 15 18:19:55 CST 2024
    calendar.add(Calendar.MONTH, -6);                   // Thu Feb 15 18:19:55 CST 2024
    calendar.add(Calendar.DAY_OF_MONTH, 14);            // Thu Feb 29 18:19:55 CST 2024

    System.out.println(calendar.getTime().toString());  // Thu Feb 29 18:19:55 CST 2024
}

最后,把上面的內(nèi)容連起來,筆者終于完成了:按指定格式 “yyyyMMdd” 傳入字符串與加減天數(shù),返回同樣格式字符串的方法:String addDay(String str, int num). 如下:

public class Main {

    /**
     * 對(duì)日期加減數(shù)天
     *
     * @param yyyyMMdd 形如 "20240228"
     * @param day      形如 2(支持負(fù)數(shù))
     * @return 形如 "20240301"
     */
    public static String addDay(String yyyyMMdd, int day) {

        // String to Date
        SimpleDateFormat format = new SimpleDateFormat("yyyyMMdd");
        Date date;
        try {
            date = format.parse(yyyyMMdd);
        } catch (ParseException e) {
            throw new RuntimeException(e);
        }

        // Change Date
        Calendar calendar = Calendar.getInstance();
        calendar.setTime(date);
        calendar.add(Calendar.DAY_OF_MONTH, day);
        date = calendar.getTime();

        // Date to String
        yyyyMMdd = format.format(date);

        return yyyyMMdd;
    }

    public static void main(String[] args) {
        System.out.println(addDay("20240228", 2));  // 20240301
    }
}

即使天數(shù)很多也沒問題:

System.out.println(addDay("20240228", 2333));  // 20300719

也可以完全同理實(shí)現(xiàn)加減年/月/時(shí)/分/秒,等等,只需更改 field 為 Calendar.XXX 即可,不一而足。

總結(jié)

到此這篇關(guān)于java字符串日期類Date和Calendar相互轉(zhuǎn)化及相關(guān)常用方法的文章就介紹到這了,更多相關(guān)java日期類Date和Calendar相互轉(zhuǎn)化內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • Java 中使用數(shù)組存儲(chǔ)和操作數(shù)據(jù)

    Java 中使用數(shù)組存儲(chǔ)和操作數(shù)據(jù)

    本文將介紹Java中常用的數(shù)組操作方法,通過詳細(xì)的示例和解釋,幫助讀者全面理解和掌握這些方法,具有一定的參考價(jià)值,感興趣的可以了解一下
    2023-09-09
  • 基于Java創(chuàng)建XML(無中文亂碼)過程解析

    基于Java創(chuàng)建XML(無中文亂碼)過程解析

    這篇文章主要介紹了基于Java創(chuàng)建XML(無中文亂碼)過程解析,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2019-10-10
  • 使用Mybatis遇到的there is no getter異常

    使用Mybatis遇到的there is no getter異常

    這篇文章主要介紹了使用Mybatis遇到的there is no getter異常,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧
    2018-09-09
  • MyBatis-plus報(bào)錯(cuò)Property ‘sqlSessionFactory‘ or ‘sqlSessionTemplate‘ are required的解決方法

    MyBatis-plus報(bào)錯(cuò)Property ‘sqlSessionFactory‘ or 

    這篇文章主要給大家介紹了MyBatis-plus 報(bào)錯(cuò) Property ‘sqlSessionFactory‘ or ‘sqlSessionTemplate‘ are required的兩種解決方法,如果遇到相同問題的朋友可以參考借鑒一下
    2023-12-12
  • IDEA強(qiáng)制清除Maven緩存的實(shí)現(xiàn)示例

    IDEA強(qiáng)制清除Maven緩存的實(shí)現(xiàn)示例

    清除項(xiàng)目緩存是一個(gè)常見的操作,本文主要介紹了IDEA強(qiáng)制清除Maven緩存的實(shí)現(xiàn)示例,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2024-07-07
  • Java控制臺(tái)實(shí)現(xiàn)猜拳游戲小游戲

    Java控制臺(tái)實(shí)現(xiàn)猜拳游戲小游戲

    這篇文章主要為大家詳細(xì)介紹了Java控制臺(tái)實(shí)現(xiàn)猜拳游戲小游戲,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2019-11-11
  • Mybatis對(duì)mapper的加載流程深入講解

    Mybatis對(duì)mapper的加載流程深入講解

    這篇文章主要給大家介紹了關(guān)于Mybatis對(duì)mapper的加載流程,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-11-11
  • Spring中的InitializingBean接口的使用

    Spring中的InitializingBean接口的使用

    這篇文章主要介紹了Spring中的InitializingBean接口的使用,需要的朋友可以參考下
    2018-04-04
  • 使用kotlin集成springboot開發(fā)的超詳細(xì)教程

    使用kotlin集成springboot開發(fā)的超詳細(xì)教程

    目前大多數(shù)都在使用java集成 springboot進(jìn)行開發(fā),本文演示僅僅將 java換成 kotlin,其他不變的情況下進(jìn)行開發(fā),需要的朋友可以參考下
    2021-09-09
  • @TableField注解之深入理解與應(yīng)用方式

    @TableField注解之深入理解與應(yīng)用方式

    在現(xiàn)代軟件開發(fā)中,@TableField注解作為MyBatis-Plus中的一個(gè)重要特性,用于定義實(shí)體類字段與數(shù)據(jù)庫表字段的映射關(guān)系,本文詳細(xì)介紹了@TableField注解的使用場(chǎng)景、屬性及其在實(shí)際開發(fā)中的應(yīng)用,包括字段名稱映射、非數(shù)據(jù)庫字段標(biāo)識(shí)、字段填充策略
    2024-10-10

最新評(píng)論