1.0 簡(jiǎn)介
在JAVA中,時(shí)間處理一直是個(gè)問(wèn)題,雖然java有原生的Date和Calendar,作為日期處理工具,但是不管是代碼的美觀度還是使用的便捷度都仍不是很方便,今天推薦一款方便的java日期工具:Joda。
2.0 代碼注入
如果為maven項(xiàng)目,則需要通過(guò)添加maven依賴進(jìn)行添加。本文推薦的版本為2.9.0。
<dependency> <groupId>joda-time</groupId> <artifactId>joda-time</artifactId> <version>2.9.0</version></dependency>
3.0 使用方法
3.1 基本使用
joda默認(rèn)的時(shí)間處理類為org.joda.time.DateTime,下面的代碼將展示該類對(duì)應(yīng)的使用方法:
- 默認(rèn)開(kāi)始時(shí)間為當(dāng)前時(shí)間
// 默認(rèn)當(dāng)前時(shí)間DateTime dateTime1 = new DateTime();// 輸出日期字符串,格式為:YYYY-MM-ddSystem.out.println(dateTime1.toString("yyyy-MM-dd"));// 顯示結(jié)果:2020-06-01
- 根據(jù)字符串的時(shí)間轉(zhuǎn)換
// 如果為YYYY-MM-dd格式字符 即為指定時(shí)間DateTime dateTime2 = new DateTime("2020-01-01");// 輸出日期字符串,格式為:YYYY-MM-dd HH:mm:ssSystem.out.println(dateTime2.toString("yyyy-MM-dd HH:mm:ss"));// 顯示結(jié)果:2020-01-01 00:00:00
- java的日期Date對(duì)象轉(zhuǎn)換DateTime
// 基于java的日期Date對(duì)象轉(zhuǎn)換DateTimeDateTime dateTime3 = new DateTime(date);System.out.println(dateTime3.toString("yyyy-MM-dd"));// 將DateTime轉(zhuǎn)換DateDate date2 = dateTime3.toDate();
- 自定義格式轉(zhuǎn)換
// 日期格式定義DateTimeFormatter formatter = DateTimeFormat.forPattern("yyyy-MM-dd HH:mm:ss");// 根據(jù)格式定義DateTimeDateTime dateTime4 = DateTime.parse("2020-06-01 12:00:00", formatter);System.out.println(dateTime4.toString("yyyy-MM-dd HH:mm:ss"));
3.2 日期處理
- 年轉(zhuǎn)換
// 年轉(zhuǎn)換DateTime dateTime1 = new DateTime();// 10年后 那就是加10年所以是plusYears(10)String s1 = dateTime1.plusYears(10).toString("yyyy-MM-dd");System.out.println(s1);//顯示結(jié)果: 2030-06-01// 5年前 那就是減5年所以是minusYears(5)String s2 = dateTime1.minusYears(5).toString("yyyy-MM-dd");System.out.println(s2);//顯示結(jié)果:2015-06-01
- 月轉(zhuǎn)換
// 月轉(zhuǎn)換DateTime dateTime1 = new DateTime();// 10個(gè)月后 那就是加10個(gè)月所以是plusMonths(10)String s1 = dateTime1.plusMonths(10).toString("yyyy-MM-dd");System.out.println(s1);//顯示結(jié)果:2021-04-01// 5個(gè)月前 那就是減5個(gè)月所以是minusMonths(5)String s2 = dateTime1.minusMonths(5).toString("yyyy-MM-dd");System.out.println(s2);//顯示結(jié)果: 2020-01-01
- 周轉(zhuǎn)換
// 周轉(zhuǎn)換DateTime dateTime1 = new DateTime();// 2周后 那就是加2周所以是plusWeeks(2)String s1 = dateTime1.plusWeeks(2).toString("yyyy-MM-dd");System.out.println(s1);// 顯示結(jié)果: 2020-06-15// 1周前 那就是減1周所以是minusWeeks(1)String s2 = dateTime1.minusWeeks(1).toString("yyyy-MM-dd");System.out.println(s2);// 顯示結(jié)果: 2020-05-25
- 時(shí)轉(zhuǎn)換
// 時(shí)轉(zhuǎn)換DateTimeFormatter formatter = DateTimeFormat.forPattern("yyyy-MM-dd HH:mm:ss");DateTime dateTime1 = DateTime.parse("2020-06-01 12:00:00", formatter);// 2小時(shí)后 那就是加2小時(shí)所以是plusHours(2)String s1 = dateTime1.plusHours(2).toString("yyyy-MM-dd HH:mm:ss");System.out.println(s1);// 顯示結(jié)果: 2020-06-01 14:00:00// 1小時(shí)前 那就是減1個(gè)小時(shí)所以是minusHours(1)String s2 = dateTime1.minusHours(1).toString("yyyy-MM-dd HH:mm:ss");System.out.println(s2);// 顯示結(jié)果: 2020-06-01 11:00:00
轉(zhuǎn)發(fā)+關(guān)注 私信我 回復(fù)頭條666 領(lǐng)取資料