【個人總結 | 個人轉載】——Java時間工具類
本文介紹兩個時間日期工具類的使用:1、Joda-time;2、Java8自帶的時間類。
兩者的使用都很方便,用法類似,少量程式碼就可以實現常用的功能,如:根據自定義格式獲取時間、時間加減、時間對比等。
具體看程式碼:
1. maven專案引入jar 包
<dependency> <groupId>joda-time</groupId> <artifactId>joda-time</artifactId> <version>2.10</version> </dependency>
2. 程式碼:(不夠用自己擴充套件一下,在公司wiki上看到的,自己整理了一下)
package com.cyf.date; import org.joda.time.DateTime; import java.util.Objects; /** * @author cyf * @description * @create 2018-11-16 16:35 **/ public class TestJodaTime { public static final String DEFAULT_PATTEN = "yyyy-MM-dd HH:mm:ss"; public static final Integer DEFAULT_MONTH = 1; /** * 獲取當前時間 * * @return 當前時間預設格式為 yyyy-MM-dd HH:mm:ss */ public static String getNowDate() { return getNowDate(null); } /** * 獲取當前時間 * * @return 返回當前時間 */ public static DateTime nowDate() { return new DateTime(); } /** * 獲取當前時間 * * @param pattern 格式 * @return 返回當前時間 格式為 pattern * 預設為 yyyy-MM-dd HH:mm:ss */ public static String getNowDate(String pattern) { if (Objects.isNull(pattern)) { pattern = DEFAULT_PATTEN; } return new DateTime().toString(pattern); } /** * 獲取前幾個月時間 * * @param date 當前時間 * @param beforeMonth 幾個月前 * @return 返回幾個月前時間 預設為 yyyy-MM-dd HH:mm:ss */ public static String getBeforeMonthDate(DateTime date, Integer beforeMonth) { return getBeforeMonthDate(date, beforeMonth, null); } /** * 獲取前幾個月時間 * * @param date 當前時間 * @param beforeMonth 幾個月前 * @return 返回幾個月前時間 格式為 pattern * 預設為 yyyy-MM-dd HH:mm:ss * @Param pattern 時間格式 */ public static String getBeforeMonthDate(DateTime date, Integer beforeMonth, String pattern) { if (Objects.isNull(beforeMonth)) { beforeMonth = DEFAULT_MONTH; } if (Objects.isNull(pattern)) { pattern = DEFAULT_PATTEN; } return date.minusMonths(beforeMonth).toString(pattern); } // Joda-time的使用 測試 public static void main(String[] args) { //日期比較 DateTime d1 = new DateTime("2012-02-01"); DateTime d2 = new DateTime("2012-05-01"); //和系統時間比 boolean b1 = d1.isAfterNow(); boolean b2 = d1.isBeforeNow(); boolean b3 = d1.isEqualNow(); //和其他日期比 boolean f1 = d1.isAfter(d2); boolean f2 = d1.isBefore(d2); boolean f3 = d1.isEqual(d2); // 獲取當前時間 String nowDate = getNowDate(); System.out.println("當前時間:" + nowDate); DateTime now = nowDate(); // 獲取4個月之前的時間 String beforeDate = getBeforeMonthDate(now, 4); System.out.println("4個月之前的時間:" + beforeDate); // 其他方法 System.out.println("當前時間:" + now.toString(DEFAULT_PATTEN)); System.out.println("9天后時間:" + now.plusDays(9).toString(DEFAULT_PATTEN)); System.out.println("4分鐘後時間:" + now.plusMinutes(4).toString(DEFAULT_PATTEN)); System.out.println("4小時後時間:" + now.plusHours(4).toString(DEFAULT_PATTEN)); } // Java8時間類使用 // public static void main(String[] args) { // // //獲取時間 // DateTimeFormatter dateTimeFormatter = DateTimeFormatter.ofPattern("yyyyMMddHHmmss"); // Instant instant = Instant.now(); // LocalDate localDate = LocalDate.now(); // LocalTime localTime = LocalTime.now(); // String localDateTime = LocalDateTime.now().format(dateTimeFormatter); // LocalDate date = LocalDate.of(2018, 10, 30); // System.out.println(instant); // System.out.println(localDate); // System.out.println(localTime); // System.out.println(localDateTime); // System.out.println(date); // // //時間加減 // LocalTime localTime1 = localTime.plusHours(2);//增加兩個小時 // String localDateTime1 = LocalDateTime.now().plusDays(2).format(dateTimeFormatter);//增加兩天 // String localDateTime2 = LocalDateTime.now().minusDays(2).format(dateTimeFormatter);//減少兩天 // System.out.println(localTime1); // System.out.println(localDateTime1); // System.out.println(localDateTime2); // // //日期比較 // LocalDateTime dt1 = LocalDateTime.now().plusDays(2); // LocalDateTime dt2 = LocalDateTime.now().minusDays(2); // boolean flag = dt1.isAfter(dt2);//dt1是否大於dt2 // boolean flag1 = dt1.isBefore(dt2);//dt1是否大於dt2 // boolean flag2 = dt1.isEqual(dt2);//dt1是否等於dt2 // System.out.println(flag); // System.out.println(flag1); // System.out.println(flag2); // } }
相關推薦
【個人總結 | 個人轉載】——Java時間工具類
本文介紹兩個時間日期工具類的使用:1、Joda-time;2、Java8自帶的時間類。 兩者的使用都很方便,用法類似,少量程式碼就可以實現常用的功能,如:根據自定義格式獲取時間、時間加減、時間對比等。 具體看程式碼: 1. maven專案引入jar 包 <d
【轉載】java報表工具報表軟體選型經驗總結分享
本人研二學生一枚,計算機專業,主要學的語言是java,這學期跟著導師開始做專案了,導師比較牛,給各個行業都做過很多專案,在學校和業內口碑都非常不錯。 進入專案第一天,導師就給安排了任務--調研報表工具。至於為啥要調研工具,導師說是因為最近的專案裡開始報表畫的比較多了,再不能
【轉載】java的常見類型轉換
ima hour parse ear nbsp 可能 ont 文章 getclass //Int型數字轉換成String int num1=123456; //方法1 String str1=num1+"";
【MongoDb學習之路】Java利用MongoClient類連線MongoDB資料庫
專案需要 mongo-java-driver-3.0.2 .jar 【重點看加粗字型,方法體中註釋的都是系統連線引數】 package cn.com.mongodb; import com.mongodb.DB; import com.mongodb.DBColl
開源Java時間工具類Joda-Time體驗
java import org.joda.time.*; import org.joda.time.format.DateTimeFormat; import org.joda.time.format.DateTimeFormatter; import org.junit.Test; import java
202.常用java時間工具類
1. 效果 2. 工具類 package ipi.common.utils; import java.text.Format; import java.text.ParseException; import java.text.SimpleDa
Java時間工具類
廢話不說,直接上程式碼: /** * 獲取過去第幾天的日期 */ public static Date getPastDate(Date date, int past) { Calendar
Java時間工具類(把日期時間轉換成xx秒前、xx分鐘前、xx小時前...)
package com.liuzy.javaopen.entity; import java.text.ParseException; import java.text.SimpleDateFormat; import java.util.Calendar; import java.util.Date;
【轉載】JAVA中IO流操作的基本規律總結
reader 對象 作文 若是 gpo 是否 目的 io流 基本 流操作的基本規律:三個明確 1.明確源和目的; 源:輸入流即讀取流 InputStream,Reader 目的:輸出流即寫入流 OutputStream, Writer 2.明確操作的數據是
【轉載】Java IO基礎總結
stream name lse rect block 文件操作 讀數 pla ex18 Java中使用IO(輸入輸出)來讀取和寫入,讀寫設備上的數據、硬盤文件、內存、鍵盤......,根據數據的走向可分為輸入流和輸出流,這個走向是以內存為基準的,即往內存中讀
【約瑟夫環】Java實現:100個人開始從1開始報數,每當報數到3,報數3的人離開,求最後留下來人的位置。
問題背景:約瑟夫環問題 在這裡寫一個簡單的約瑟夫環的問題:100個人坐成一圈開始從1開始報數,每個報數為3的人離開座位,直到座位上只剩下一個人,求這個人的位置。 解決問題使用的工具&程式語言: 工具:Eclipse 程式設計:Java 程式碼如下: public class Yuesef
【轉載】Java中Comparable和Comparator比較
import 比較器 todo itl 復制代碼 ack div array open 【本文轉自】http://www.cnblogs.com/skywang12345/p/3324788.html Comparable 簡介 Comparable 是排序接口。 若一
【轉載】JAVA多線程讀取、操作List集合
線程 nbsp static 一點 stat lang 素數 param 應用 本文轉載自:http://blog.csdn.net/wang1989cs/article/details/47663565 import java.util.ArrayList; impor
【轉載】java 客戶端鏈接不上redis解決方案 (jedis)
主機 rom number table 出現 gin 現在 start http 本文出自:http://blog.csdn.net/lulidaitian/article/details/51946169 出現問題描述: 1.Could not get a resou
【轉載】java 獲取路徑的各種方法
strong filepath 文件路徑 etc dex 讀取 workspace for class 轉載只供個人學習參考,查看請前往原出處:http://www.cnblogs.com/guoyuqiangf8/p/3506768.html 主要方法有: (1)、req
【轉載】Java DecimalFormat 用法
最快 public oid get div 科學計數 科學 符號 一個 轉載只供個人學習參考,以下查看請前往原出處:http://blog.csdn.net/wangchangshuai0010/article/details/8577982 我們經常要將數字進行格式化,比
【轉載】JAVA學習路線二
get rocket 原理 aop 二次 三次握手 active AD cpu JAVA學習路線二------------高階面試 作者:Java高級進階鏈接:https://zhuanlan.zhihu.com/p/35301291來源:知乎著作權歸作者所有。商業轉載請聯
【轉載】JAVA字符串格式化-String.format()的使用
對數 print 英文月份 兩種 local 之前 width 標記 散列碼 常規類型的格式化 String類的format()方法用於創建格式化的字符串以及連接多個字符串對象。熟悉C語言的同學應該記得C語言的sprintf()方法,兩者有類似之處。format()方法有兩
【轉載】Java基本型別的Writable封裝
Java基本型別的Writable封裝 目前Java基本型別對應的Writable封裝如表所示 所有這些Writable類都繼承自WritableComparable。也就是說,它們是可比較的。 同時,它們都有get()和set()方法,用於獲得和設定封裝的值。 對整形(int和long
【轉載】Java 中帶參無返回、帶參帶返回值、方法的重載
語法 ble 數組 實現 執行 愛慕 包含 參數 com 一、 有時方法的執行需要依賴於某些條件,換句話說,要想通過方法完成特定的功能,需要為其提供額外的信息才行。例如,現實生活中電飯鍋可以實現“煮飯”的功能,但前提是我們必須提供食材,如果我們什麽都不提供,那就真是的“巧婦