首页 > 其他分享 >获取两个日期yyyy-MM-dd之间相差的天数

获取两个日期yyyy-MM-dd之间相差的天数

时间:2024-04-11 12:58:08浏览次数:23  
标签:date1 date2 String MM dd yyyy between LocalDate public

Java 8中的日期时间API是考虑了闰年和平年的特残情况的。在这个API中,LocalDate类表示日期,ChronoUnit.DAYS.between()方法计算两个日期之间的天数差异时会考虑闰年和平年的影响。

import java.time.LocalDate;
import java.time.temporal.ChronoUnit;

/**
 * @author XiSoil
 */
public class Test1DateCalculator {
    public static void main(String[] args) {
        String date1 = "2021-01-01";
        String date2 = "2022-12-31";

        LocalDate start = LocalDate.parse(date1);
        LocalDate end = LocalDate.parse(date2);

        long daysBetween = ChronoUnit.DAYS.between(start, end);
        System.out.println("Days between " + date1 + " and " + date2 + " : " + daysBetween);
    }
}

通过计算获取相差天数

/**
 * @author XiSoil
 */
public class Test2DaysBetween {
    public static void main(String[] args) {
        System.out.println(daysBetween("2019-01-01", "2020-12-31"));
    }
        public static int daysBetween(String date1, String date2) {
        SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
        Date d1 = null;
        Date d2 = null;
        try {
            d1 = sdf.parse(date1);
            d2 = sdf.parse(date2);
        } catch (Exception e) {
            e.printStackTrace();
        }
        long between = (d2.getTime() - d1.getTime()) / (1000 * 3600 * 24);
        return Integer.parseInt(String.valueOf(between)) >= 0 ? Integer.parseInt(String.valueOf(between)) : -Integer.parseInt(String.valueOf(between));
    }
}

 

标签:date1,date2,String,MM,dd,yyyy,between,LocalDate,public
From: https://www.cnblogs.com/xxaxf/p/18128835

相关文章

  • 52 Things: Number 11: What are the DLP, CDH and DDH problems?
    52Things:Number11:WhataretheDLP,CDHandDDHproblems?52件事:数字11:DLP、CDH和DDH问题是什么? Thisisthelatestinaseriesofblogpoststoaddressthelistof'52ThingsEveryPhDStudentShouldKnowToDoCryptography':asetofquestion......
  • The 2022 ICPC Asia Hangzhou Regional Programming Contest
    目录写在前面FDCKAGM写在最后写在前面比赛地址:https://codeforces.com/gym/104090。以下按个人难度向排序。最上强度的一集,然而金牌题过了铜牌题没过,唐!去年杭州似在一道树上痛失Au呃呃,vp2022树题过了然而铜牌题没过呃呃F签到。大力模拟。codebydztle:#include<bit......
  • org.apache.commons.lang3.ArrayUtils 学习笔记
    1234567891011121314151617181920212223242526272829303132333435package com.nihaorz.model; /** *@作者王睿 *@时间2016-5-17上午10:05:17 * */public class Person{    private Stringid;    pr......
  • DDS协议测试实践及问题分析
    在上一篇文章中,我们对DDS协议测试的策略、方法和工具进行了详细的介绍。本文旨在进一步探讨如何利用这些方法和工具搭建实际的测试环境,并执行测试,进而揭示可能遇到的各类问题。  被测协议栈简介  在本次测试中,被测协议栈选择了一个在汽车行业内广泛使用的开源DDS产......
  • 记录一个springcloud-task-core.jar导致CommandLineRunner @order排序失效的问题
    项目中编写了几个CommandLineRunner,并且加上了spring的@order注解,期望在启动时会按顺序执行(从order的value小到大执行),但是实际使用发现排序不生效于是进行debug,CommandLineRunner类的排序是在SpringApplication.class的callRunners方法privatevoidcallRunners(ApplicationCon......
  • WPF的TextTrimming的属性
    WPF的TextTrimming="CharacterEllipsis"是一种文本修剪方式,用于在文本长度超过容器宽度时省略文本。它会在文本末尾添加省略号(...),同时保留尽可能多的字符。这种修剪方式通常用于UI设计中,以避免文本溢出并保持视觉美观。可以通过设置TextTrimming属性来指定文本的截断方式:Tex......
  • 超大容量 | 瑞芯微RK3588J工业核心板新增16GB DDR + 128GB eMMC配置!
    作为瑞芯微的金牌合作伙伴,创龙科技在2023年9月即推出搭载瑞芯微旗舰级处理器RK3588J的全国产工业核心板——SOM-TL3588。 SOM-TL3588工业核心板是基于瑞芯微RK3588J/RK3588高性能处理器设计的四核ARMCortex-A76+四核ARMCortex-A55全国产工业核心板,Cortex-A76核心主频高达2.......
  • 【讲解下Fiddler的安装和使用】
    ......
  • selenium-浏览器复用-Invalid Status code=403 text=Forbidden
    问题:selenium-java版本为4.1.4、4.8.2+Java8运行时报InvalidStatuscode=403text=Forbidden 运行代码:publicclassRemoteTest{publicChromeOptionsoptions;publicWebDriverdriver;@TestpublicvoidremoteTest(){options=newC......
  • 解析oracle的DDL语句生成高斯内表及表字段主键配置
    oracle的DDL语句如下:CREATETABLETPPROD.CONFIG( NOVARCHAR2(50), CONFIGCODEVARCHAR2(400), CONFIGVALUEVARCHAR2(400), CONSTRAINTPK_GUENDORASSISTCONFIGPRIMARYKEY(NO,CONFIGCODE));CREATEUNIQUEINDEXPK_GUENDORASSISTCONFIGONTPPROD.GUENDORASSI......