package com.example.springbootghw.util; import lombok.extern.slf4j.Slf4j; import java.text.ParseException; import java.text.SimpleDateFormat; import java.util.Calendar; import java.util.Date; import java.util.GregorianCalendar; import static com.fasterxml.jackson.databind.util.ISO8601Utils.format; @Slf4j public class DateFormat { /** * 英文简写(默认)如:2010-12-01 */ public static String FORMAT_SHORT = "yyyy-MM-dd"; /** * 英文全称 如:2010-12-01 23:15:06 */ public static String FORMAT_LONG = "yyyy-MM-dd HH:mm:ss"; /** * 精确到毫秒的完整时间 如:yyyy-MM-dd HH:mm:ss.S */ public static String FORMAT_FULL = "yyyy-MM-dd HH:mm:ss.S"; /** * 中文简写 如:2010年12月01日 */ public static String FORMAT_SHORT_CN = "yyyy年MM月dd"; /** * 中文全称 如:2010年12月01日 23时15分06秒 */ public static String FORMAT_LONG_CN = "yyyy年MM月dd日 HH时mm分ss秒"; /** * 精确到毫秒的完整中文时间 */ public static String FORMAT_FULL_CN = "yyyy年MM月dd日 HH时mm分ss秒SSS毫秒"; // public static void main(String[] args) { // System.out.println(getTimeString()); // System.out.println("返回日期年份:"+getYear(new Date())); // System.out.println("返回月份:"+getMonth(new Date())); // System.out.println("返回当天日份"+getDay(new Date())); // System.out.println("返回当天小时"+getHour(new Date())); // System.out.println("返回当天分"+getMinute(new Date())); // System.out.println("返回当天秒"+getSecond(new Date())); // System.out.println("返回当天毫秒"+getMillis(new Date())); // // } //字符串转化成对应的日期格式,字符串格式为yyyy-MM-dd HH:mm:ss public java.util.Date stringToDate(String source){ SimpleDateFormat formatter = new SimpleDateFormat(FORMAT_LONG); try { java.util.Date date = formatter.parse(source); return date; } catch (ParseException e) { e.printStackTrace(); return null; } } //时间戳转换为日期格式 public java.util.Date timeToDate(long source){ Date date = new Date(source); return date; } //计算两个日期的时间差值,返回单位分钟 public long duration(java.util.Date source1, java.util.Date source2){ long time1 = source1.getTime(); long time2 = source2.getTime(); long diff = Math.abs(time1-time2)/1000/60; return diff; } //日期增加amount天 public java.util.Date addDay(java.util.Date source, int amount){ Calendar calendar = new GregorianCalendar(); calendar.setTime(source); calendar.add(calendar.DATE,amount);//把日期往后增加amount天.整数往后推,负数往前移动 java.util.Date dest =calendar.getTime(); return dest; } //把日期往后增加amount时.整数往后推,负数往前移动 public java.util.Date addHour(java.util.Date source, int amount){ Calendar calendar = new GregorianCalendar(); calendar.setTime(source); calendar.add(calendar.HOUR,amount); java.util.Date dest =calendar.getTime(); return dest; } //日期增加amount秒 public java.util.Date addSecond(java.util.Date source, int amount){ Calendar calendar = new GregorianCalendar(); calendar.setTime(source); calendar.add(calendar.SECOND,amount);//把日期往后增加amount天.整数往后推,负数往前移动 java.util.Date dest =calendar.getTime(); return dest; } /** *@param *@return 返回当前周一的日期对应的字符串 如:2019-07-08 */ public String firstDayOfWeek(){ SimpleDateFormat simdf = new SimpleDateFormat(FORMAT_SHORT); Calendar cal = Calendar.getInstance(); System.out.println("现在时间:"+simdf.format(cal.getTime())); cal.set(cal.DAY_OF_WEEK, cal.MONDAY); String firstDay = simdf.format(cal.getTime()); log.info("当前时间所在周周一日期:"+firstDay); return firstDay; } /** * 日期格式字符串转换成时间戳 * @param timeStamp 时间戳 单位秒 * @param format 如:yyyy-MM-dd HH:mm:ss * @return */ public String timeToString(long timeStamp,String format){ SimpleDateFormat df = new SimpleDateFormat(format); return df.format(timeStamp*1000); } /** * 获取当前时间 */ public static String getTimeString(String format) { SimpleDateFormat df = new SimpleDateFormat(format); Calendar calendar = Calendar.getInstance(); return df.format(calendar.getTime()); } /** * 获取日期年份 * @param date 日期 * @return */ public static String getYear(Date date) { return format(date).substring(0, 4); } /** * 功能描述:返回月 * * @param date * Date 日期 * @return 返回月份 */ public static int getMonth(Date date) { Calendar calendar = Calendar.getInstance(); calendar.setTime(date); return calendar.get(Calendar.MONTH) + 1; } /** * 功能描述:返回日期 * * @param date * Date 日期 * @return 返回日份 */ public static int getDay(Date date) { Calendar calendar = Calendar.getInstance(); calendar.setTime(date); return calendar.get(Calendar.DAY_OF_MONTH); } /** * 功能描述:返回小时 * * @param date * 日期 * @return 返回小时 */ public static int getHour(Date date) { Calendar calendar = Calendar.getInstance(); calendar.setTime(date); return calendar.get(Calendar.HOUR_OF_DAY); } /** * 功能描述:返回分 * * @param date * 日期 * @return 返回分钟 */ public static int getMinute(Date date) { Calendar calendar = Calendar.getInstance(); calendar.setTime(date); return calendar.get(Calendar.MINUTE); } /** * 返回秒钟 * * @param date * Date 日期 * @return 返回秒钟 */ public static int getSecond(Date date) { Calendar calendar = Calendar.getInstance(); calendar.setTime(date); return calendar.get(Calendar.SECOND); } /** * 功能描述:返回毫 * * @param date * 日期 * @return 返回毫 */ public static long getMillis(Date date) { Calendar calendar = Calendar.getInstance(); calendar.setTime(date); return calendar.getTimeInMillis(); } }