计算时间格式为yyyyMMddHHmmss的时间差

时间转换工具类

/**
 * 字符串yyyyMMddHHmmss格式化为yyyy-MM-dd HH:mm:ss:SSS日期格式
 */
public static String getTurnData(String data) throws ParseException {
    Date orderDateStart1 = null;
    orderDateStart1 = new SimpleDateFormat("yyyyMMddHHmmss").parse(data);
    String DateStart = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss:SSS").format(orderDateStart1);
    return DateStart;
}

统计两个时间的时间差

/**
 * 统计两个时间的时间差
 * @param str1 开始时间
 * @param str2 结束时间
 * @return *小时*分钟
 */
public static String getDistanceTime(String str1, String str2) {
    SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss:SSS");
    Date one;
    Date two;
    long day = 0;//天数差
    long hour = 0;//小时数差
    long min = 0;//分钟数差
    long second=0;//秒数差
    long diff=0 ;//毫秒差
    String result = null;
    try {
        final Calendar c = Calendar.getInstance();
        c.setTimeZone(TimeZone.getTimeZone("GMT+8:00"));
        one = df.parse(str1);
        c.setTime(one);
        two = df.parse(str2);
        long time1 = one.getTime();
        long time2 = two.getTime();
        diff = time2 - time1;
        day = diff / (24 * 60 * 60 * 1000);
        hour = (diff / (60 * 60 * 1000) - day * 24);
        min = ((diff / (60 * 1000)) - day * 24 * 60 - hour * 60);
        second = diff/1000;
        System.out.println("day(天数)="+day+" hour(小时)="+hour+" min(分钟)="+min+" ss(秒数)="+second%60+" SSS(毫秒)="+diff%1000);
        result=day*24+hour+"小时"+min+"分钟";
    } catch (ParseException e) {
        e.printStackTrace();
    }
    return result;
}

测试方法

public static void main(String[] args) throws ParseException {
    String str1 = "20221011132817";
    String str2 = "20231012144837";

    System.out.println("时间差:"+getDistanceTime(getTurnData(str1),getTurnData(str2)));
}

效果图

全部源码

package com.ruiling.pm.service;

import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Date;
import java.util.TimeZone;

/**
 * @author 星晨
 * @description
 */
public class a {
    public static void main(String[] args) throws ParseException {
        // 开始时间
        String str1 = "20221011132817";
        // 结束时间
        String str2 = "20231012144837";

        System.out.println("时间差:"+getDistanceTime(getTurnData(str1),getTurnData(str2)));
    }

    /**
     * 字符串yyyyMMddHHmmss格式化为yyyy-MM-dd HH:mm:ss:SSS日期格式
     */
    public static String getTurnData(String data) throws ParseException {
        Date orderDateStart1 = null;
        orderDateStart1 = new SimpleDateFormat("yyyyMMddHHmmss").parse(data);
        String DateStart = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss:SSS").format(orderDateStart1);
        return DateStart;
    }

    /**
     * 统计两个时间的时间差
     * @param str1 开始时间
     * @param str2 结束时间
     * @return *小时*分钟
     */
    public static String getDistanceTime(String str1, String str2) {
        SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss:SSS");
        Date one;
        Date two;
        long day = 0;//天数差
        long hour = 0;//小时数差
        long min = 0;//分钟数差
        long second=0;//秒数差
        long diff=0 ;//毫秒差
        String result = null;
        try {
            final Calendar c = Calendar.getInstance();
            c.setTimeZone(TimeZone.getTimeZone("GMT+8:00"));
            one = df.parse(str1);
            c.setTime(one);
            two = df.parse(str2);
            long time1 = one.getTime();
            long time2 = two.getTime();
            diff = time2 - time1;
            day = diff / (24 * 60 * 60 * 1000);
            hour = (diff / (60 * 60 * 1000) - day * 24);
            min = ((diff / (60 * 1000)) - day * 24 * 60 - hour * 60);
            second = diff/1000;
            System.out.println("day(天数)="+day+" hour(小时)="+hour+" min(分钟)="+min+" ss(秒数)="+second%60+" SSS(毫秒)="+diff%1000);
            result=day*24+hour+"小时"+min+"分钟";
        } catch (ParseException e) {
            e.printStackTrace();
        }
        return result;
    }

}

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值