import java.text.DecimalFormat; import java.text.ParseException; import java.text.SimpleDateFormat; import java.util.Calendar; import java.util.Date; public class DateFormat { public static final String DATE_FORMAT_A="yyyy-MM-dd HH:mm:ss"; /** * 将int类型数字转换成时分秒毫秒的格式数据 * * @param time long类型的数据 * @return HH:mm:ss.SSS * @author zero 2019/04/11 */ public static String msecToTime(int time) { String timeStr = null; int hour = 0; int minute = 0; int second = 0; int millisecond = 0; if (time <= 0) { return "00:00:00.000"; } else { second = time / 1000; minute = second / 60; millisecond = time % 1000; if (second < 60) { timeStr = "00:" + unitFormat(second); } else if (minute < 60) { second = second % 60; timeStr = unitFormat(minute) + ":" + unitFormat(second); } else {// 数字>=3600 000的时候 hour = minute / 60; minute = minute % 60; second = second - hour * 3600 - minute * 60; timeStr =unitFormat(minute) + ":" + unitFormat(second); } } return timeStr; } public static String msecToTime2(int time) { String timeStr = null; int hour = 0; int minute = 0; int second = 0; int millisecond = 0; if (time <= 0) { return "00:00:00.000"; } else { second = time / 1000; minute = second / 60; millisecond = time % 1000; if (second < 60) { timeStr = "00:00:" + unitFormat(second); } else if (minute < 60) { second = second % 60; timeStr = "00:" + unitFormat(minute) + ":" + unitFormat(second); } else {// 数字>=3600 000的时候 hour = minute / 60; minute = minute % 60; second = second - hour * 3600 - minute * 60; timeStr = unitFormat(hour) + ":" + unitFormat(minute) + ":" + unitFormat(second); } } return timeStr; } //时分秒的格式转换 public static String unitFormat(int i) { String retStr = null; if (i >= 0 && i < 10) { retStr = "0" + Integer.toString(i); } else { retStr = "" + i; } return retStr; } //毫秒的格式转换 public static String unitFormat2(int i) { String retStr = null; if (i >= 0 && i < 10) { retStr = "00" + Integer.toString(i); } else if (i >= 10 && i < 100) { retStr = "0" + Integer.toString(i); } else { retStr = "" + i; } return retStr; } /** * 转换格式 00:00:00 * @param time * @return */ public static String tranToThreeString(int time){ String paramRet1 = "00:00:00"; String paramRet2 = "00:00:01"; String hour = "00"; String minute = "00"; String second = "00"; if(time <= 0){ return paramRet1; }else if( time < 1000 ){ return paramRet2; }else{ int tmpSecond = time / 1000; int remainder = time % 1000; if(tmpSecond >= 60){ // 计算分钟 int tmpMinute = tmpSecond / 60; if(tmpMinute >= 60){ // 计算小时 int tmpHour = tmpMinute / 60; int mpMinute = tmpMinute % 60; int mmpSecond = mpMinute % 60; return twoString(tmpHour) + ":" + twoString(mpMinute) + ":" +twoString(remainder > 0 && (mmpSecond + 1) != 60? mmpSecond + 1 : mmpSecond); } int mpSecond = tmpSecond % 60; // 分钟不够一小时 return hour + ":" + twoString(tmpMinute) + ":" + twoString(remainder > 0 && (mpSecond + 1) != 60 ? mpSecond + 1 : mpSecond); } // 秒不够一分钟 second = twoString(remainder > 0 && (tmpSecond + 1) != 60 ? tmpSecond + 1 : tmpSecond);; } // 默认返回结果 return hour + ":" + minute + ":" + second; } /** * 转换格式 00:00 * @param time * @return */ public static String tranToTwoString(int time) { String paramRet1 = "00:00"; String paramRet2 = "00:01"; String minute = "00"; String second = "00"; if(time <= 0){ return paramRet1; }else if( time < 1000 ){ return paramRet2; }else{ int tmpSecond = time / 1000; int remainder = time % 1000; if(tmpSecond >= 60){ // 计算分钟 int tmpMinute = tmpSecond / 60; int mpSecond = tmpSecond % 60; // if(tmpMinute > 60){ // throw new Exception("分钟数大于60分钟,本api不支持"); throws Exception // } // 分钟不够一小时 return twoString(tmpMinute) + ":" + twoString(mpSecond); } // 秒不够一分钟 second = twoString(tmpSecond); } // 默认返回结果 return minute + ":" + second; } private static String twoString(int time){ String tmp = String.valueOf(time); if(tmp.length() > 1){ return tmp; } return "0" + tmp; } public static Integer computerBar(int num1,int num2){ String result = "0"; Integer integer = new Integer(0); try{ DecimalFormat df = new DecimalFormat("#.00"); String format = df.format(Double.valueOf(num1) / Double.valueOf(num2)); result = format.substring(format.lastIndexOf(".")+1); if("00".equals(result) && num1 !=0){ return 100; }else if("00".equals(result) && num1 == 0){ return 0; } integer = Integer.valueOf(result); }catch (Exception e){ return 0; } return integer; } public static String date2StringFormat(Date date, String format) { if((format == null || format.isEmpty())){ format = "yyyy-MM-dd HH:mm:ss"; } SimpleDateFormat sdf = new SimpleDateFormat(format); return sdf.format(date); } public static Date sting2DateFormat(String date, String format) throws ParseException { if((format == null || format.isEmpty())){ format = "yyyy-MM-dd HH:mm:ss"; } SimpleDateFormat sdf = new SimpleDateFormat(format); return sdf.parse(date); } public static String getDataBeforeYear(){ SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd"); Calendar c = Calendar.getInstance(); c.setTime(new Date()); c.add(Calendar.YEAR, -1); Date y = c.getTime(); String year = format.format(y); return year; } }