java字符串日期類Date和Calendar相互轉化及相關常用方法
Java中,可以通過以下方法將字符串轉換為Date:
String dateString = "2023-07-28"; DateFormat format = new SimpleDateFormat("yyyy-MM-dd"); Date date = format.parse(dateString);
在這個例子中,我們將一個字符串類型的日期轉換為Date對象。需要注意的是,我們需要使用SimpleDateFormat類來指定日期格式。
同樣地,我們也可以將Date轉換為字符串:
Date date = new Date(); DateFormat format = new SimpleDateFormat("yyyy-MM-dd"); String dateString = format.format(date);
Java中,可以通過以下方法將Date轉換為Calendar:
Date date = new Date(); Calendar calendar = Calendar.getInstance(); calendar.setTime(date);
在這個例子中,我們將當前時間的Date對象轉換為Calendar對象。需要注意的是,我們需要使用Calendar.getInstance()方法來獲取一個Calendar實例。
同樣地,我們也可以將Calendar轉換為Date:
Calendar calendar = Calendar.getInstance(); Date date = calendar.getTime();
在這個例子中,我們將當前時間的Calendar對象轉換為Date對象。需要注意的是,我們需要使用Calendar.getTime()方法來獲取一個Date實例。
除了轉換之外,Date和Calendar類還有許多常用的方法。以下是一些常見的方法:
- Date類方法getTime():返回自1970年1月1日00:00:00 GMT以來的毫秒數(shù)。
- toString():返回一個表示此日期的字符串。
- before(Date when):如果此日期在when之前,則返回true。
- after(Date when):如果此日期在when之后,則返回true。
- Calendar類方法get(int field):返回給定日歷字段的值。
- set(int field, int value):將給定日歷字段設置為給定值。
- add(int field, int amount):將給定的時間量添加到給定的日歷字段中。
- getTime():返回一個表示此Calendar時間值(從歷元到現(xiàn)在的毫秒偏移量)的Date對象。
- toString():返回一個表示此Calendar時間值(從歷元到現(xiàn)在的毫秒偏移量)的字符串表示形式
附:加減日期
截止目前已經完成了 String Date Calendar 互轉了。(Calendar 到 String 恐怕只能通過 Date 中轉一下,我沒有發(fā)現(xiàn)任何無需借助 Date 的方法)
接下來該實現(xiàn)按格式輸入字符串日期,任意加減天數(shù)的需求了,用到 Calendar 的成員方法:public abstract void add(int field, int amount)
.
它能在 field
代表的時間字段上加 amount
個單位(可以為負數(shù))。字段同樣使用 Calendar 的靜態(tài)成員變量。結合例子很容易理解:
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 }
最后,把上面的內容連起來,筆者終于完成了:按指定格式 “yyyyMMdd” 傳入字符串與加減天數(shù),返回同樣格式字符串的方法:String addDay(String str, int num)
. 如下:
public class Main { /** * 對日期加減數(shù)天 * * @param yyyyMMdd 形如 "20240228" * @param day 形如 2(支持負數(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
也可以完全同理實現(xiàn)加減年/月/時/分/秒,等等,只需更改 field
為 Calendar.XXX
即可,不一而足。
總結
到此這篇關于java字符串日期類Date和Calendar相互轉化及相關常用方法的文章就介紹到這了,更多相關java日期類Date和Calendar相互轉化內容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!
相關文章
基于Java創(chuàng)建XML(無中文亂碼)過程解析
這篇文章主要介紹了基于Java創(chuàng)建XML(無中文亂碼)過程解析,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下2019-10-10使用Mybatis遇到的there is no getter異常
這篇文章主要介紹了使用Mybatis遇到的there is no getter異常,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2018-09-09MyBatis-plus報錯Property ‘sqlSessionFactory‘ or 
這篇文章主要給大家介紹了MyBatis-plus 報錯 Property ‘sqlSessionFactory‘ or ‘sqlSessionTemplate‘ are required的兩種解決方法,如果遇到相同問題的朋友可以參考借鑒一下2023-12-12使用kotlin集成springboot開發(fā)的超詳細教程
目前大多數(shù)都在使用java集成 springboot進行開發(fā),本文演示僅僅將 java換成 kotlin,其他不變的情況下進行開發(fā),需要的朋友可以參考下2021-09-09