时间转换工具类
/** * 字符串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;
}
}