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日

相关文章

  • 详解web存储中的storage

    详解Web存储中的Storage 一、Storage简介 Storage是Web API的一部分,提供了在浏览器本地存储数据的功能。Storage分为两种类型:localStorage和sessionStorage。 localStorage和sessionStorage的区别在于,localStorage中存储的数据没有时间限制,除非用户手动删除;而ses…

    Java 2023年6月15日
    00
  • 一文搞懂MyBatis多数据源Starter实现

    一文搞懂MyBatis多数据源Starter实现 多数据源在一些应用场景下非常常见,MyBatis也提供了多数据源的支持。但是对于开发者来说,要手动实现多数据源的切换非常繁琐,而且容易出错。MyBatis多数据源Starter可以帮助我们自动配置多数据源并提供切换功能。本文将对MyBatis多数据源Starter的使用进行详细讲解。 步骤一:添加依赖 首先,…

    Java 2023年5月20日
    00
  • JAVA及相关字符集编码问题研究分享

    JAVA及相关字符集编码问题研究分享 在Java编程中,字符集编码是一个重要的问题。本文将介绍Java的字符集编码问题,并分享一些实际应用中的示例。 什么是字符集编码 字符集编码是将字符转换为二进制数据的过程。在计算机中,所有数据都是以二进制格式存储的,因此字符集编码可以将字符转换为计算机可以处理的二进制数据。 Java中常用的字符集编码有UTF-8、GBK…

    Java 2023年5月20日
    00
  • maven 隐式依赖引起的包冲突解决办法

    当使用Maven构建项目时,一个常见的问题是来自传递依赖的冲突。这个问题的根源在于Maven隐式依赖的传递机制。本文将介绍如何通过Maven来解决这个问题,主要包括以下几个方面: 了解Maven的依赖传递机制 利用Maven Dependency Plugin分析依赖冲突 使用依赖排除,去除冲突依赖 了解 Maven 的依赖传递机制 Maven的依赖传递机制…

    Java 2023年5月20日
    00
  • Java中JDBC的使用教程详解

    Java中JDBC的使用教程详解 JDBC(Java Database Connectivity)是Java语言操作数据库的标准规范。本文将详细讲解Java中JDBC的使用教程,包括开发环境搭建、JDBC连接MySQL数据库、CRUD操作、事务管理等内容。 开发环境搭建 在使用JDBC之前,需要安装Java开发环境和MySQL数据库,并将MySQL JDBC…

    Java 2023年5月19日
    00
  • SpringBoot中的响应式web应用详解

    Spring Boot是一个用于构建基于Spring框架开发的应用程序的工具。其提供了快速的应用程序开发和易于使用的API,并确定了一些最佳实践,使得开发人员可以更加专注于应用程序功能和业务逻辑。而“响应式web应用”则是指使用非阻塞I/O的方式,能够更快地处理请求、响应更迅速和更多的请求、更少的资源消耗等特点。 搭建响应式web 应用,我们需要依赖于以下的…

    Java 2023年5月15日
    00
  • 之前很火给女朋友推送微信服务号消息是怎么做的?

    经过了几天的奋战,终于把微信服务号的模板消息给写完了。后端其实没花多少时间,因为之前已经有同学提过pull request了,我在这基础之上简单优化下就完事了,主要的时间都是花在前端上,对前端页面和参数的适配比较麻烦。 消息推送平台?推送下发【邮件】【短信】【微信服务号】【微信小程序】【企业微信】【钉钉】等消息类型。 https://gitee.com/zh…

    Java 2023年4月18日
    00
  • 京东面经总结

    非科班,经历了无数场秋招,现将面试京东的题目记录如下: 一面 kafka在应用场景以及 项目 里的实现 bitmap底层 object里有哪些方法 hashmap相关 sychronized和reentrantlock相关问题以及锁升级 cas和volatile 线程几种状态以及转化 jvm内存模型 mybatis相关问题 Redis数据结构,问了下跳表的底…

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