项目中使用的 日期类型是 java.util.Date MySQL中的日期类型是 datetime 数据表映射对象也用的 java.util.Date
包含下面几个
字符串类型的(年月日时分秒) 转成 Date类型将当前Date类型按照指定格式转成 String类型的将String类型的日期格式转成毫秒值将毫秒值转成 String类型的日期格式计算两个日期间隔的小时数 import java.text.ParseException; import java.text.SimpleDateFormat; import java.util.Calendar; import java.util.Date; /** * @Author: LiangJingXing * @Date: 2019/6/10 14:29 * @Description: 日期格式转换工具类 * SimpleDateFormat 线程不安全 */ public class FormatUtils { /** * 字符串类型转 Date * @param stringDate * @return */ public static Date StringFormatDate(String stringDate){ SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); Date date = null; try { date = simpleDateFormat.parse(stringDate); } catch (ParseException e) { e.printStackTrace(); } return date; } /** * 将当前日期类型 转换成String * @return */ public static String DateToString(Date date){ SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd HH"); String format = simpleDateFormat.format(date); return format; } /** * 将时间格式 yyyy-MM-dd HH:mm:ss String的表现形式转成毫秒 * @param timeStr * @return * @throws ParseException */ public static Long stringFormatCurrentMillis(String timeStr) throws ParseException { SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd HH"); Date date = simpleDateFormat.parse(timeStr); long ts = date.getTime(); return ts; } /** * 将 毫秒值 转成 时间格式的字符传 * @param timeMillis * @return */ public static String currentMillisToDateString(Long timeMillis){ Calendar calendar = Calendar.getInstance(); calendar.setTimeInMillis(timeMillis); // 年 int year = calendar.get(Calendar.YEAR); // 月 int month = calendar.get(Calendar.MONTH) + 1 ; String monthStr = addZero(month); // 日 int day = calendar.get(Calendar.DAY_OF_MONTH); String dayStr = addZero(day); // 24小时制 int hour = calendar.get(Calendar.HOUR_OF_DAY); String hourStr = addZero(hour); // 分 int minute = calendar.get(Calendar.MINUTE); String minuteStr = addZero(minute); // 秒 int second = calendar.get(Calendar.SECOND); String secondStr =addZero(second); return(year + "-" + monthStr + "-" + dayStr + " " + hourStr + ":" + minuteStr + ":" + secondStr); } /** * 不满2位数 用0补齐 * @param param * @return */ private static String addZero(int param) { String paramStr = param < 10 ? "0"+param : "" + param ; return paramStr; } /** * 计算2个日期间隔 小时数 * @param date1 * @param date2 * @return * @throws ParseException */ public static Long calcDaysBetweenForHours(Date date1, Date date2) throws ParseException { SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd HH"); date1 = simpleDateFormat.parse(simpleDateFormat.format(date1)); date2 = simpleDateFormat.parse(simpleDateFormat.format(date2)); Calendar calendar = Calendar.getInstance(); calendar.setTime(date1); long timeInMillis1 = calendar.getTimeInMillis(); calendar.setTime(date2); long timeInMillis2 = calendar.getTimeInMillis(); long hours = (timeInMillis2 - timeInMillis1) /(1000 * 60 * 60); return hours; } /** * 在同一小时 true 不在同一小时 false * @param date1 * @param pushTime * @return * @throws ParseException */ public static Boolean calcIsAlreadyPush(Date date1, Date pushTime) throws ParseException{ SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd HH"); date1 = simpleDateFormat.parse(simpleDateFormat.format(date1)); pushTime = simpleDateFormat.parse(simpleDateFormat.format(pushTime)); Calendar calendar = Calendar.getInstance(); calendar.setTime(date1); long timeInMillis1 = calendar.getTimeInMillis(); calendar.setTime(pushTime); long pushTimeMillis = calendar.getTimeInMillis(); if (timeInMillis1 - pushTimeMillis == 0){ return true; } return false; } }