计算两个时间戳对象之间的时差-Java

卡尔提·克拉兹(Karthi Krazz)

我有java.sql.date和java.sql.time对象,我需要找到日期之间的持续时间。

所以我通过使用上述日期和时间对象创建java.sql.timestamp对象

  Timestamp timestamp1 = new Timestamp(StartDate.getYear(),
        StartDate.getMonth(), StartDate.getDay(),
        StartTime.getHours(), StartTime.getMinutes(), 00,
        00);

这是mycode

String date = "2010-01-05";
    SimpleDateFormat sdf1 = new SimpleDateFormat("yyyy-MM-dd");
    java.util.Date date3 = null;
    try {
        date3 = sdf1.parse(date);
    } catch (ParseException e) {
        e.printStackTrace();
    }
    Date StartDate = new Date(date3.getTime());
    System.out.println("Date " + StartDate);

    String date2 = "2010-01-06";
    java.util.Date date4 = null;
    try {
        date4 = sdf1.parse(date2);
    } catch (ParseException exception) {
        exception.printStackTrace();
    }
    Date EndDate = new Date(date4.getTime());
    System.out.println("Date " + EndDate);

    String time = "01:00";
    DateFormat formatter = new SimpleDateFormat("HH:mm");
    java.sql.Time StartTime = null;
    try {
        StartTime = new java.sql.Time(formatter.parse(time).getTime());
    } catch (ParseException exception2) {
        exception2.printStackTrace();
    }
    System.out.println("TIMEEEEEEEEEE====" + StartTime);

    String time2 = "02:00";
    java.sql.Time EndTime = null;
    try {
        EndTime = new java.sql.Time(formatter.parse(time2).getTime());
    } catch (ParseException exception3) {
        exception3.printStackTrace();
    }
    System.out.println("TIMEEEEEEEEEE====" + EndTime);


    Timestamp timestamp1 = new Timestamp(StartDate.getYear(),
            StartDate.getMonth(), StartDate.getDay(),
            StartTime.getHours(), StartTime.getMinutes(), 00,
            00);
    Timestamp timestamp2 = new Timestamp(EndDate.getYear(),
            EndDate.getMonth(), EndDate.getDay(),
            EndTime.getHours(), EndTime.getMinutes(), 00, 00);

    long milliseconds = timestamp2.getTime() - timestamp1.getTime();
    int seconds = (int) milliseconds / 1000;

    // calculate hours minutes and seconds
    int hours = seconds / 3600;
    int minutes = (seconds % 3600) / 60;
    seconds = (seconds % 3600) % 60;
    System.out.println(hours+"h:"+minutes+"m:"+"00s");

测试用例

当我给出日期为2010-01-05和date2为2010-01-06时,我得到的输出如下

Date 2010-01-05
Date 2010-01-06
TIMEEEEEEEEEE====01:00:00
TIMEEEEEEEEEE====02:00:00
25h:0m:00s

当我给出日期为2010-01-05和date2为2010-01-11时,我得到如下所示的负值输出

Date 2010-01-05
Date 2010-01-11
TIMEEEEEEEEEE====01:00:00
TIMEEEEEEEEEE====02:00:00
-23h:0m:00s

如果我做错了什么,请帮助我纠正。提前致谢。

杜蒂

手动时间计算:-

转换日期(毫秒),并使用以下规则计算两个日期之间的差:

  • 1000毫秒= 1秒
  • 60秒= 1分钟
  • 60分钟= 1小时
  • 24小时= 1天

范例范例:-

package com.dps2.practice.dyuti;

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

public class DateDifferentExample {

    public static void main(String[] args) {

        String dateStart = "08/11/2016 09:29:58";
        String dateStop = "08/12/2016 10:31:48";

        //HH converts hour in 24 hours format (0-23), day calculation
        SimpleDateFormat format = new SimpleDateFormat("MM/dd/yyyy HH:mm:ss");

        Date d1 = null;
        Date d2 = null;

        try {
            d1 = format.parse(dateStart);
            d2 = format.parse(dateStop);

            //in milliseconds
            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.print(diffDays + " days, ");
            System.out.print(diffHours + " hours, ");
            System.out.print(diffMinutes + " minutes, ");
            System.out.print(diffSeconds + " seconds.");

        } catch (Exception e) {
            e.printStackTrace();
        }

    }

}

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

两个Java应用程序之间的Java Spring Boot JSON时间戳转换问题

来自分类Dev

ORA-01873计算两个时间戳之间的时差

来自分类Dev

如何找到两个时间戳之间的时差?

来自分类Dev

Apex 5.1 中两个时间戳之间的时差

来自分类Dev

计算两个输入时间之间的时差

来自分类Dev

重击:计算两个时间戳之间经过的时间

来自分类Dev

计算两个时间戳之间的时间差

来自分类Dev

计算java中两个日期之间的天数

来自分类Dev

Java库计算两个String之间的相对差?

来自分类Dev

两个时代误差之间的Android的Java如果时间

来自分类Dev

计算两个日期之间的时差

来自分类Dev

计算两个日期之间的时差

来自分类Dev

计算两个日期之间的时差

来自分类Dev

计算bash中两个时间戳之间的差异

来自分类Dev

JAVA-两个对象之间的关系

来自分类Dev

JAVA-两个对象之间的关系

来自分类Dev

如何找到两个服务器时间戳之间的时差?

来自分类Dev

如何使用jQuery以秒为单位获取两个时间戳之间的时差?

来自分类常见问题

同一列DAX中两个时间戳之间的时差

来自分类Dev

MySQL为表中的特定ID选择两个时间戳列之间的平均时差

来自分类Dev

同一列DAX中两个时间戳之间的时差

来自分类Dev

MySQL为表中的特定ID选择两个时间戳列之间的平均时差

来自分类Dev

如何找到两个服务器时间戳之间的时差?

来自分类Dev

计算两个时间戳之间的差异,并获得Unix时间戳之间的差异

来自分类Dev

计算两个时间戳之间的差异,并获得unix时间戳之间的差异

来自分类Dev

如何在Java中比较两个utc时间戳?

来自分类Dev

试图找到两个日期时间对象之间在Joda时间中的时差

来自分类Dev

计算每天两个日期时间字段之间的平均时差

来自分类Dev

计算Excel上两个日期和时间之间的时差

Related 相关文章

  1. 1

    两个Java应用程序之间的Java Spring Boot JSON时间戳转换问题

  2. 2

    ORA-01873计算两个时间戳之间的时差

  3. 3

    如何找到两个时间戳之间的时差?

  4. 4

    Apex 5.1 中两个时间戳之间的时差

  5. 5

    计算两个输入时间之间的时差

  6. 6

    重击:计算两个时间戳之间经过的时间

  7. 7

    计算两个时间戳之间的时间差

  8. 8

    计算java中两个日期之间的天数

  9. 9

    Java库计算两个String之间的相对差?

  10. 10

    两个时代误差之间的Android的Java如果时间

  11. 11

    计算两个日期之间的时差

  12. 12

    计算两个日期之间的时差

  13. 13

    计算两个日期之间的时差

  14. 14

    计算bash中两个时间戳之间的差异

  15. 15

    JAVA-两个对象之间的关系

  16. 16

    JAVA-两个对象之间的关系

  17. 17

    如何找到两个服务器时间戳之间的时差?

  18. 18

    如何使用jQuery以秒为单位获取两个时间戳之间的时差?

  19. 19

    同一列DAX中两个时间戳之间的时差

  20. 20

    MySQL为表中的特定ID选择两个时间戳列之间的平均时差

  21. 21

    同一列DAX中两个时间戳之间的时差

  22. 22

    MySQL为表中的特定ID选择两个时间戳列之间的平均时差

  23. 23

    如何找到两个服务器时间戳之间的时差?

  24. 24

    计算两个时间戳之间的差异,并获得Unix时间戳之间的差异

  25. 25

    计算两个时间戳之间的差异,并获得unix时间戳之间的差异

  26. 26

    如何在Java中比较两个utc时间戳?

  27. 27

    试图找到两个日期时间对象之间在Joda时间中的时差

  28. 28

    计算每天两个日期时间字段之间的平均时差

  29. 29

    计算Excel上两个日期和时间之间的时差

热门标签

归档