Java 計算兩個日期相差多少年月日

2021-09-13 01:28:30 字數 1495 閱讀 8323

jdk7及以前的版本,計算兩個日期相差的年月日比較麻煩。

jdk8新出的日期類,提供了比較簡單的實現方法。

/**

* 計算2個日期之間相差的 相差多少年月日

* 比如:2011-02-02 到 2017-03-02 相差 6年,1個月,0天

* @param fromdate yyyy-mm-dd

* @param todate yyyy-mm-dd

* @return 年,月,日 例如 1,1,1

*/public static string daycompareprecise(string fromdate, string todate)

乙個簡單的工具方法,供參考。

簡要說2點:

1. localdate.parse(datestring)這個是將字串型別的日期轉化為localdate型別的日期,預設是datetimeformatter.iso_local_dateyyyy-mm-dd。

localdate還有個方法是parse(charsequence text, datetimeformatter formatter),帶日期格式引數,下面是jdk中的原始碼,比較簡單,不多說了,感興趣的可以自己去看一下原始碼

/**

* obtains an instance of from a text string using a specific formatter.

* * the text is parsed using the formatter, returning a date.

** @param text the text to parse, not null

* @param formatter the formatter to use, not null

* @return the parsed local date, not null

* @throws datetimeparseexception if the text cannot be parsed

*/public static localdate parse(charsequence text, datetimeformatter formatter)

2. 利用period計算時間差,period類內建了很多日期計算方法,感興趣的可以去看原始碼。period.between(localdate.parse(fromdate), localdate.parse(todate));主要也是用localdate去做計算。period可以快速取出年月日等資料。

老舊的******dateformat不是執行緒安全的,多執行緒下容易出問題。估計大部分公司都在用jdk8了吧,很多任務具類是時候更新換代了,保持與時俱進。

以上。over!

jq計算兩個日期之間的時間差,多少年多少月

js日期系列 根據出傳入的日期 得到當前日期與傳入日期的差,返回的格式是 y年m月 傳入引數strkeydate要求格式為 yyyy年mm月dd日 這樣的日期字串,如果不是自行先轉換,或者調整下方 傳入的日期,將其產分為年 月 日 的拆分方法 後續再增加相關的如日期判斷等js關於日期處理的相關方法 ...

用php計算兩個日期相差多少

用php計算給定兩個日期相差多少天 計算方法不只下面介紹的這些,只是一些比較常規的方法 如要計算2009 12 09和2009 12 05相差多少天 startdate strtotime 2009 12 09 enddate strtotime 2009 12 05 上面的php時間日期函式str...

c c 輸入兩個日期,計算日期相差多少天

1,題目 有兩個日期,計算它們之間的差值,如果兩個日期是連續的,則按照2天算。日期格式規定為yyyymmdd,例如20200709 2,基本思路 1 輸入兩個日期 2 以小的日期為底,每次加一天,直到與大的日期相等即可 2.1 增加一天後,月份,年份都可能會隨之變化。針對閏年平年以及大小月天數都一樣...