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)在的毫秒偏移量)的字符串表示形式
附:加減日期
截止目前已經(jīng)完成了 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后端把數(shù)據(jù)轉換為樹,map遞歸生成json樹,返回給前端(后臺轉換)
這篇文章主要介紹了java后端把數(shù)據(jù)轉換為樹,map遞歸生成json樹,返回給前端實例(后臺轉換),具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2017-01-01
Spring Boot 簡單使用EhCache緩存框架的方法
本篇文章主要介紹了Spring Boot 簡單使用EhCache緩存框架的方法,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2018-07-07
使用Spring Data JDBC實現(xiàn)DDD聚合的示例代碼
這篇文章主要介紹了使用Spring Data JDBC實現(xiàn)DDD聚合的示例代碼,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2018-09-09
springboot的EnvironmentPostProcessor接口方法源碼解析
這篇文章主要介紹了springboot的EnvironmentPostProcessor接口方法源碼解析,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪2023-08-08
詳解基于IDEA2020.1的JAVA代碼提示插件開發(fā)例子
這篇文章主要介紹了詳解基于IDEA2020.1的JAVA代碼提示插件開發(fā)例子,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧2020-06-06
詳解JavaEE 使用 Redis 數(shù)據(jù)庫進行內容緩存和高訪問負載
本篇文章主要介紹了JavaEE 使用 Redis 數(shù)據(jù)庫進行內容緩存和高訪問負載,具有一定的參考價值,有興趣的可以了解一下2017-08-08

