java如何获取两个日期的时间差

获取两个日期的时间差,可以使用Java中的时间处理类,例如java.util.Date和java.time.LocalDateTime类。下面分别介绍这两种方式的具体实现方法:

  1. 使用java.util.Date类实现时间差:

代码示例:

import java.text.SimpleDateFormat;
import java.util.Date;

public class TimeDifference {
    public static void main(String[] args) {
        String date1 = "2020-12-01 08:00:00";
        String date2 = "2020-12-01 09:30:00";

        SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
        try {
            Date d1 = sdf.parse(date1);
            Date d2 = sdf.parse(date2);

            long diff = d2.getTime() - d1.getTime();

            long diffSeconds = diff / 1000 % 60;
            long diffMinutes = diff / (60 * 1000) % 60;
            long diffHours = diff / (60 * 60 * 1000) % 24;
            long diffDays = diff / (24 * 60 * 60 * 1000);

            System.out.println("时间差为:" + diffDays + "天" + diffHours + "小时" + diffMinutes + "分钟" + diffSeconds + "秒");
        } catch (Exception e) {
            e.printStackTrace();
        }
    }
}

运行结果:

时间差为:0天1小时30分钟0秒
  1. 使用java.time.LocalDateTime类实现时间差:

代码示例:

import java.time.Duration;
import java.time.LocalDateTime;
import java.time.format.DateTimeFormatter;

public class TimeDifference {
    public static void main(String[] args) {
        String date1 = "2020-12-01 08:00:00";
        String date2 = "2020-12-01 09:30:00";

        DateTimeFormatter dtf = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss");
        LocalDateTime ldt1 = LocalDateTime.parse(date1, dtf);
        LocalDateTime ldt2 = LocalDateTime.parse(date2, dtf);

        Duration dur = Duration.between(ldt1, ldt2);

        long diffSeconds = dur.getSeconds() % 60;
        long diffMinutes = dur.toMinutes() % 60;
        long diffHours = dur.toHours() % 24;
        long diffDays = dur.toDays();

        System.out.println("时间差为:" + diffDays + "天" + diffHours + "小时" + diffMinutes + "分钟" + diffSeconds + "秒");
    }
}

运行结果:

时间差为:0天1小时30分钟0秒

以上就是获取两个日期的时间差的完整攻略了,可以根据自己的需求选择其中一种方法实现。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:java如何获取两个日期的时间差 - Python技术站

(0)
上一篇 2023年5月20日
下一篇 2023年5月20日

相关文章

  • 使用JSP制作一个超简单的网页计算器的实例分享

    制作一个使用JSP制作一个超简单的网页计算器的实例方法如下: 第一步:新建一个JSP页面 首先,打开一个文本编辑器或者IDE,创建一个新文件,将文件的扩展名设置为 .jsp 即可。例如,我们新建一个 calculate.jsp 文件。 第二步:编写HTML代码 接下来,在新建的 calculate.jsp 文件中编写HTML代码,实现表单输入框和计算按钮。H…

    Java 2023年6月15日
    00
  • SSH框架网上商城项目第13战之Struts2文件上传功能

    下面就给您讲解一下“SSH框架网上商城项目第13战之Struts2文件上传功能”的完整攻略。 一、Struts2文件上传功能简介 Struts2文件上传功能是指在Struts2框架中,用户可以通过向服务器提交文件的方式来实现文件上传的功能。Struts2文件上传功能通常采用Apache Commons FileUpload库来实现,可以对上传的文件进行大小、…

    Java 2023年5月20日
    00
  • Java由浅入深细数数组的操作上

    Java数组操作完整攻略 一、数组概述 Java数组是一种包含固定数量元素的数据结构,这些元素属于同一种数据类型。 Java数组由以下几个基本点组成: 数组声明 数组的创建 数组的初始化 数组的访问 数组的遍历 二、数组的声明 Java中数组的声明包含两个重要的部分,第一部分是数组的类型,第二部分是数组的名字。如下所示: int[] arr; //第一种声明…

    Java 2023年5月26日
    00
  • Hibernate迫切连接和普通连接的区别实例详解

    Hibernate迫切连接和普通连接的区别实例详解 在使用Hibernate框架进行开发时,连接数据库是必不可少的一项工作。而在连接数据库的过程中,Hibernate支持两种连接方式:迫切连接和普通连接。下面我们就来详细了解这两种连接方式的区别及其使用场景,以及实例说明。 迫切连接 迫切连接又称立即加载,指在查询主对象时,同时将关联对象也加载出来。也就是说,…

    Java 2023年6月15日
    00
  • Java实战之用hutool-db实现多数据源配置

    当我们的应用需要连接多个数据库时,常规的做法是通过JDBC来手动连接和操作不同的数据源。这样的代码通常会显得冗长和重复,对于代码维护和可读性都造成了一定的负担。事实上,Java中有一些工具库可以帮助我们更容易地实现多数据源配置和自动化操作,比如常用的HikariCP、Druid等数据库连接池,还有hutool-db库。 Hutool-db简介 Hutool-…

    Java 2023年5月20日
    00
  • 详解vue.js+UEditor集成 [前后端分离项目]

    详解 vue.js+UEditor 集成 [前后端分离项目] 的完整攻略,具体步骤如下: 1. 前置准备 在开始之前,我们需要先准备好以下工具和环境: Vue.js 2.0+ UEditor 1.4.3.3+ Vue-UEditor-wrapper 插件 Node.js 8.0+ Vue CLI 3.0+ Webpack 4.0+ 2. 安装 Vue-UEd…

    Java 2023年6月15日
    00
  • IntelliJ IDEA中新建Java class的解决方案

    当在IntelliJ IDEA中需要新建一个Java class时,可以按照以下步骤进行操作: 在IntelliJ IDEA的菜单栏中,选择File -> New -> Java Class,或者使用快捷键Alt+Insert(MacOS中为Command+N)。 在弹出的对话框中,输入class的名称,选择class所在的包名,也可以选择一个已…

    Java 2023年5月26日
    00
  • Java在长字符串中查找短字符串的实现多种方法

    下面我会详细讲解Java在长字符串中查找短字符串的实现多种方法。 目录 需求背景 传统字符串查找方式 String类的indexOf方法 Pattern类的matcher方法 优化的字符串查找方式 Boyer-Moore算法 KMP算法 总结 需求背景 在Java程序中处理长字符串时,经常需要进行短字符串的查找。例如,在字符串中查找单词、检查字符串中是否包含…

    Java 2023年5月26日
    00
合作推广
合作推广
分享本页
返回顶部