package com.util;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;
public class DateUtil {
public static String minuteFormat="yyyy-MM-dd HH:mm";
public static String secondFormat="yyyy-MM-dd HH:mm:ss";
public static String dayFormat="yyyy-MM-dd";
public static String zeroTime="0000-00-00 00:00:00";
//得到当前时间(精确到天)
public static String getCurrentTimeByDay(){
return getCurrentTime(dayFormat);
}
//得到当前时间(精确到分钟)
public static String getCurrentTimeByMinute(){
return DateUtil.getCurrentTime(minuteFormat);
}
//得到当前时间(精确到秒)
public static String getCurrentTimeBySecond(){
return DateUtil.getCurrentTime(secondFormat);
}
//得到当前时间(自定义格式)
public static String getCurrentTime(String format){
Date date=new Date();
SimpleDateFormat sdf=new SimpleDateFormat(format);
String currentTime=sdf.format(date);
return currentTime;
}
//计算当前时间差(精确到秒)
public static long calcTimeDifferenceBySecond(String oldTime){
return DateUtil.calcTimeDifferenceBySecond(oldTime,DateUtil.getCurrentTimeBySecond());
}
//计算时间差(精确到秒)
public static long calcTimeDifferenceBySecond(String oldTime,String newTime){
SimpleDateFormat simpleDateFormat=new SimpleDateFormat(secondFormat);
long seconds=0;
try {
Date newDate = simpleDateFormat.parse(newTime);
Date oldDate=simpleDateFormat.parse(oldTime);
//得到时间差
long diff=newDate.getTime()-oldDate.getTime();//ms
seconds=diff/1000;
} catch (ParseException e) {
e.printStackTrace();
}
return seconds;
}
//计算当前时间差(精确到分钟)
public static long calcTimeDifferenceByMinute(String oldTime){
return DateUtil.calcTimeDifferenceBySecond(oldTime)/60;
}
//计算时间差(精确到分钟)
public static long calcTimeDifferenceByMinute(String oldTime,String newTime){
return DateUtil.calcTimeDifferenceBySecond(oldTime, newTime)/60;
}
//毫秒转HH小时mm分钟ss秒
public static String millisToHHmmss(long millis){
long secends=millis/1000;
String timeStr = null;
int hour = 0;
int minute = 0;
int second = 0;
if (secends<= 0) {
return "0秒";
} else {
minute = secends/ 60;
if (minute == 0) {
String secendStr=seconds<10?"0"+seconds:seconds+"";
timeStr = secendStr + "秒";
} else if (minute < 60) {
second = seconds% 60;
timeStr = Integer.toString(minute) + "分" + Integer.toString(second) + "秒";
} else {
hour = minute / 60;
minute = minute % 60;
second = seconds- hour * 3600 - minute * 60;
timeStr = Integer.toString(hour) + "小时" + Integer.toString(minute) + "分" + Integer.toString(second)+ "秒";
}
}
return timeStr;
}
}