Java實現(xiàn)兩個日期相減等于天數(shù)
需求
根據(jù)當前時間 如:2020-10-13 減去過去的某一天 如:2020-09-30
實現(xiàn)
方式一
// 定義項目進行天數(shù) long Days = 0; SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd"); try { long time = sdf.parse("2021-01-19").getTime(); long time1 = sdf.parse("2020-10-12") .getTime(); Days = (int) ((time -time1) /(24 * 60 * 60 * 1000)); } catch (ParseException e) { e.printStackTrace(); }
方式二
import java.text.ParseException; import java.text.SimpleDateFormat; import java.time.LocalDateTime; import java.util.Calendar; public class TestDay { public static void main(String[] args) { String dateStr1 = "2020-09-30"; String dateStr2 = "2021-01-12"; SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMdd"); SimpleDateFormat sdf2 = new SimpleDateFormat("yyyy-MM-dd"); try { dateStr1 = sdf.format(sdf2.parse(dateStr1)); dateStr2 = sdf.format(sdf2.parse(dateStr2)); } catch (ParseException e) { e.printStackTrace(); } long time1 = time(dateStr1); long time2 = time(dateStr2); // 相減得出的天數(shù)mills long mills = time1> time2 ? time1 - time2 : time2 - time1; System.out.println((int) (mills / 1000 / 3600 / 24)); } // 封裝截取字符串 public static long time(String times){ int year = Integer.parseInt(times.substring(0, 4)); int month = Integer.parseInt(times.substring(4, 6)); int day = Integer.parseInt(times.substring(6, 8)); Calendar c = Calendar.getInstance(); c.set(Calendar.YEAR, year); c.set(Calendar.MONTH, month - 1); c.set(Calendar.DAY_OF_MONTH, day); return (c.getTimeInMillis()); } }
注意
以上兩種方式實現(xiàn)都可以,可以試著嘗試一下,自己偏向第一種,代碼少嘛,自己犯了一個不改犯的問題,導(dǎo)致排查了半天。自己定義yyyy-mm-dd ,mm小寫,導(dǎo)致出現(xiàn)負數(shù)的情況,在轉(zhuǎn)化的時候出現(xiàn)的問題,M與m的區(qū)別 區(qū)分 月和分,如:yyyy-MM-dd HH:mm:ss;
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd"); // 自己定義yyyy-mm-dd ,mm小寫,導(dǎo)致出現(xiàn)負數(shù)的情況,M與m的區(qū)別 區(qū)分 月和分,如:yyyy-MM-dd HH:mm:ss; SimpleDateFormat sdf = new SimpleDateFormat("yyyy-mm-dd");
到此這篇關(guān)于Java兩個日期相減等于天數(shù)的文章就介紹到這了,更多相關(guān)java日期相減等于天數(shù)內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
ArrayList和JSONArray邊遍歷邊刪除到底該如何做
這篇文章主要介紹了ArrayList和JSONArray邊遍歷邊刪除到底該如何做,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2022-12-12Unicode、UTF-8 和 ISO8859-1區(qū)別解析
這篇文章主要介紹了Unicode、UTF-8 和 ISO8859-1到底有什么區(qū)別,本文給大家介紹的非常詳細,對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下2023-01-01java中建立0-10m的消息(字符串)實現(xiàn)方法
下面小編就為大家?guī)硪黄猨ava中建立0-10m的消息(字符串)實現(xiàn)方法。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2017-05-05SpringSecurity多表多端賬戶登錄的實現(xiàn)
本文主要介紹了SpringSecurity多表多端賬戶登錄的實現(xiàn)2024-05-05如何在spring boot項目中使用Spring Security的BCryptPasswordE
本文介紹如何在Spring Boot項目中通過修改pom.xml引入安全依賴,添加配置類以解除默認的HTTP請求攔截,以及如何創(chuàng)建BCryptPasswordEncoder對象進行密碼的加密和匹配,通過這些步驟,可以有效地增強應(yīng)用的安全性2023-08-08