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_date即yyyy-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 增加一天後,月份,年份都可能會隨之變化。針對閏年平年以及大小月天數都一樣...