package cn.wildfire.chat.kit; import java.text.DecimalFormat; import java.text.ParseException; import java.text.SimpleDateFormat; import java.util.Calendar; import java.util.Date; /** * @author kimi * @description * @date 2021-01-08 16:24 */ public class DateFormat { public static DayCompare dayComparePrecise(Date fromDate, Date toDate){ Calendar from = Calendar.getInstance(); from.setTime(fromDate); Calendar to = Calendar.getInstance(); to.setTime(toDate); int fromYear = from.get(Calendar.YEAR); int fromMonth = from.get(Calendar.MONTH); int fromDay = from.get(Calendar.DAY_OF_MONTH); int toYear = to.get(Calendar.YEAR); int toMonth = to.get(Calendar.MONTH); int toDay = to.get(Calendar.DAY_OF_MONTH); int year = toYear - fromYear; int month = toMonth - fromMonth; int day = toDay - fromDay; DayCompare dayCompare =new DayCompare(); dayCompare.setDay(day); dayCompare.setMonth(month); dayCompare.setYear(year); return dayCompare; } public static int yearCompare(Date fromDate, Date toDate){ DayCompare result = dayComparePrecise(fromDate, toDate); double month = result.getMonth(); double year = result.getYear(); //返回2位小数,并且四舍五入 DecimalFormat df = new DecimalFormat("######0.0"); String format = df.format(year + month / 12); double dou = Double.parseDouble(format); double floor = Math.floor(dou); int i = (int) floor; return i; } /** * 获取当前时间戳 */ public static long getCurrentMillis() { return System.currentTimeMillis(); } /* * 将时间转换为时间戳 */ public static long dateToStamp(String s) throws ParseException { String res; SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); Date date = simpleDateFormat.parse(s); long ts = date.getTime(); return ts; } /* * 将时间戳转换为时间 */ public static String stampToStandTime(long s){ String res; SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); long lt = new Long(s); Date date = new Date(lt); res = simpleDateFormat.format(date); return res; } /* * 将时间戳转换为时间 */ public static String dateToDotDate(String s) throws ParseException { long l = dateToStamp(s); return stampToDotDate(l); } /* * 将时间戳转换为时间 */ public static String stampToDotDate(long s){ String res; SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy.MM.dd"); long lt = new Long(s); Date date = new Date(lt); res = simpleDateFormat.format(date); return res; } /* * 将时间戳转换为时间 */ public static String stampToDotTime(long s){ String res; SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy.MM.dd HH:mm:ss"); long lt = new Long(s); Date date = new Date(lt); res = simpleDateFormat.format(date); return res; } public static class DayCompare { private int year; private int month; private int day; public DayCompare() { } public DayCompare(int year, int month, int day) { this.year = year; this.month = month; this.day = day; } public int getYear() { return year; } public void setYear(int year) { this.year = year; } public int getMonth() { return month; } public void setMonth(int month) { this.month = month; } public int getDay() { return day; } public void setDay(int day) { this.day = day; } @Override public String toString() { return "DayCompare{" + "year=" + year + ", month=" + month + ", day=" + day + '}'; } } }