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日

相关文章

  • eclipse ide for java ee developers 开发环境搭建详解图文(j2ee)

    让我来为你讲解如何搭建Eclipse IDE for Java EE Developers开发环境。以下是详细的步骤: 简介 Eclipse是一个强大的集成开发环境(IDE),特别适合于Java开发人员。Eclipse IDE for Java EE Developers是针对企业级Java应用程序开发的一个特定版本,包括对Java EE、Web、企业级Ja…

    Java 2023年5月19日
    00
  • JavaWeb Struts文件上传功能实现详解

    JavaWeb Struts文件上传功能实现详解 简介 本文将详细讲解如何在 JavaWeb Struts 框架中实现文件上传功能,其中包括前端页面的设计和后端逻辑的实现。 设计前端页面 前端页面是实现文件上传功能的基础。在这里,我们将使用HTML和JavaScript来设计一个简单的上传页面。 示例一:HTML 代码 <!DOCTYPE html&g…

    Java 2023年5月20日
    00
  • Java Arrays.asList使用方法解析

    Java Arrays.asList使用方法解析 Arrays.asList是Java中常用的快速创建列表的方法之一,它可以方便地将数组转换成List。在这篇攻略中,我们将深入探讨Arrays.asList的用法。 Arrays.asList用法 首先,让我们来看一个简单的例子: String[] array = {"a", "…

    Java 2023年5月26日
    00
  • Java异常之图书管理系统

    现在我来给大家分享一下“Java异常之图书管理系统”的完整攻略。 1. 异常概述 异常是Java中用于处理错误和异常情况的一种机制。当程序发生异常时,可以通过异常处理机制将异常抛出并捕获,从而避免程序崩溃或者出现错误。 在Java中,异常是Throwable类及其子类的对象,其中最常见的异常分类包括:Checked Exception(编译时异常)和Unch…

    Java 2023年5月26日
    00
  • 一文详解密码的正则表达式写法

    下面是“一文详解密码的正则表达式写法”的完整攻略。 密码的正则表达式写法 在网站开发中,密码是必不可少的登录认证方式。为了增加用户的账号安全性,通常会限制用户使用具有一定强度的密码。在这种情况下,我们需要使用正则表达式来检查密码的强度。 下面是一个符合标准的密码格式: 长度不少于8个字符 至少包含一个大写字母、一个小写字母、一个数字和一个特殊符号 以下是符合…

    Java 2023年6月15日
    00
  • Java String字符串和Unicode字符相互转换代码详解

    Java String字符串和Unicode字符相互转换代码详解 什么是Unicode Unicode是一种字符编码方案,它为每个字符分配了一个唯一的编号,方便不同的计算机系统之间进行字符编码的统一。 在Java中,字符型变量是16位的Unicode字符。 Unicode字符转换为Java String字符串 我们可以通过Java语言中的String类型的构…

    Java 2023年5月26日
    00
  • 深入研究spring boot集成kafka之spring-kafka底层原理

    深入研究Spring Boot集成Kafka之Spring Kafka底层原理的攻略如下: 一、关于Spring Kafka Spring Kafka是Spring项目组为了在Spring项目中集成Kafka而研发的一个库,它基于Kafka提供了高度抽象的API, 并与Spring框架完美集成,提供了非常方便的方式用于实现Kafka的生产和消费。 二、Spr…

    Java 2023年6月2日
    00
  • jquery触发a标签跳转事件示例代码

    要实现jquery触发a标签跳转事件,我们可以通过以下步骤来进行: 获取a标签元素的选择器 绑定点击事件 通过jquery模拟点击事件触发跳转 下面是实现这个过程的详细代码及说明: 示例1: HTML代码 <a href="https://www.google.com/" id="jump">跳转到Goog…

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