package com.boying.util; import java.text.ParseException; import java.text.SimpleDateFormat; import java.time.LocalDateTime; import java.time.ZoneId; import java.util.Calendar; import java.util.Date; import java.util.concurrent.TimeUnit; public class DateUtilOther { public static String DateToString(Date date,String format){ if(!StringUtil.isNullOrEmpty(format)){ SimpleDateFormat f = new SimpleDateFormat(format); String sDate = f.format(date); return sDate; } SimpleDateFormat f = new SimpleDateFormat( "yyyy-MM-dd HH:mm:ss"); String sDate = f.format(date); return sDate; } public static Date stringToDate(String date,String format) throws ParseException { if(!StringUtil.isNullOrEmpty(format)){ SimpleDateFormat f = new SimpleDateFormat(format); return f.parse(date); } SimpleDateFormat f = new SimpleDateFormat( "yyyy-MM-dd HH:mm:ss"); return f.parse(date); } public static LocalDateTime stringToLocalDate(String date,String format) throws ParseException { ZoneId zoneId = ZoneId.systemDefault(); if(!StringUtil.isNullOrEmpty(format)){ SimpleDateFormat f = new SimpleDateFormat(format); LocalDateTime.ofInstant(f.parse(date).toInstant(), zoneId); } SimpleDateFormat f = new SimpleDateFormat( "yyyy-MM-dd HH:mm:ss"); return LocalDateTime.ofInstant(f.parse(date).toInstant(), zoneId); } public static Date getYearFirst(int year){ Calendar calendar = Calendar.getInstance(); calendar.clear(); calendar.set(Calendar.YEAR, year); Date currYearFirst = calendar.getTime(); return currYearFirst; } /** * 获取某年最后一天日期 * @param year 年份 * @return Date */ public static Date getYearLast(int year){ Calendar calendar = Calendar.getInstance(); calendar.clear(); calendar.set(Calendar.YEAR, year); calendar.roll(Calendar.DAY_OF_YEAR, -1); Date currYearLast = calendar.getTime(); return currYearLast; } /** * 获取指定年月的第一天 * @param year * @param month * @return */ public static Date getFirstDayOfMonth(int year, int month) { Calendar cal = Calendar.getInstance(); //设置年份 cal.set(Calendar.YEAR, year); //设置月份 cal.set(Calendar.MONTH, month-1); //获取某月最小天数 int firstDay = cal.getMinimum(Calendar.DATE); //设置日历中月份的最小天数 cal.set(Calendar.DAY_OF_MONTH,firstDay); return cal.getTime(); } /** * 获取指定年月的最后一天 * @param year * @param month * @return */ public static Date getLastDayOfMonth(int year, int month) { Calendar cal = Calendar.getInstance(); //设置年份 cal.set(Calendar.YEAR, year); //设置月份 cal.set(Calendar.MONTH, month-1); //获取某月最大天数 int lastDay = cal.getActualMaximum(Calendar.DATE); //设置日历中月份的最大天数 cal.set(Calendar.DAY_OF_MONTH, lastDay); return cal.getTime(); } public static String getFirstTimeByDate() { SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); Calendar cal = Calendar.getInstance(); String start_update = format.format(cal.getTime()); cal.set(Calendar.HOUR_OF_DAY, cal.get(Calendar.HOUR_OF_DAY)-1); String end_update = format.format(cal.getTime()); return end_update; } public static Date getMinute(Date date,int x){ Calendar beforeTime = Calendar.getInstance(); beforeTime.setTime(date); beforeTime.add(Calendar.MINUTE, x); return beforeTime.getTime(); } //当天的开始 public static Date getStartTime() { Calendar todayStart = Calendar.getInstance(); todayStart.set(Calendar.HOUR_OF_DAY, 0); todayStart.set(Calendar.MINUTE, 0); todayStart.set(Calendar.SECOND, 0); todayStart.set(Calendar.MILLISECOND, 0); return todayStart.getTime(); } //当天的结束 public static Date getEndTime() { Calendar todayEnd = Calendar.getInstance(); todayEnd.set(Calendar.HOUR_OF_DAY, 23); todayEnd.set(Calendar.MINUTE, 59); todayEnd.set(Calendar.SECOND, 59); todayEnd.set(Calendar.MILLISECOND, 999); return todayEnd.getTime(); } /** * 获取当月开始时间 */ public static Date getMonthStartTime() { Calendar calendar = Calendar.getInstance();// 获取当前日期 calendar.add(Calendar.YEAR, 0); calendar.add(Calendar.MONTH, 0); calendar.set(Calendar.DAY_OF_MONTH, 1);// 设置为1号,当前日期既为本月第一天 calendar.set(Calendar.HOUR_OF_DAY, 0); calendar.set(Calendar.MINUTE, 0); calendar.set(Calendar.SECOND, 0); calendar.set(Calendar.MILLISECOND, 0); return calendar.getTime(); } /** * 获取当月的结束时间戳 */ public static Date getMonthEndTime() { Calendar calendar = Calendar.getInstance();// 获取当前日期 calendar.add(Calendar.YEAR, 0); calendar.add(Calendar.MONTH, 0); calendar.set(Calendar.DAY_OF_MONTH, calendar.getActualMaximum(Calendar.DAY_OF_MONTH));// 获取当前月最后一天 calendar.set(Calendar.HOUR_OF_DAY, 23); calendar.set(Calendar.MINUTE, 59); calendar.set(Calendar.SECOND, 59); calendar.set(Calendar.MILLISECOND, 999); return calendar.getTime(); } //获取参考日期的上n个月的数据 public static Date getDateLessMonth(int i) { Calendar calendar = Calendar.getInstance();// 获取当前日期 calendar.add(Calendar.DAY_OF_MONTH, -i);// 设置为1号,当前日期既为本月第一天 return calendar.getTime(); } public static String getYearMoneyDay(){ SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd"); return sdf.format(new Date()); } public static String getYearMoneyDay2(){ SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd"); Calendar rightNow = Calendar.getInstance(); rightNow.add(Calendar.DATE,1); return sdf.format(rightNow.getTime()); } public static String getYearMoneyDay3(String format) throws ParseException { SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd"); Date parse = sdf.parse(format); Calendar rightNow = Calendar.getInstance(); rightNow.setTime(parse); rightNow.add(Calendar.DATE,1); return sdf.format(rightNow.getTime()); } public static Date getYearMoneyDay4(String a,String b) throws ParseException { SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); Date parse = sdf.parse(getYearMoneyDay3(a)+" "+b); return parse; } public static LocalDateTime getYearMoneyDay5(String a, String b) throws ParseException { SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); Date parse = sdf.parse(getYearMoneyDay3(a)+" "+b); ZoneId zoneId = ZoneId.systemDefault(); return LocalDateTime.ofInstant(parse.toInstant(), zoneId); } public static String millisToDayHrMinSec(long minute){ //如果传入的分钟是0,默认24小时 if (0 == minute) { return "0分钟"; } //如果分钟小于60,默认返回分钟 if (0 < minute && minute < 60) { return minute + "分钟"; } //如果分钟小于24小时(1440分钟),返回小时和分钟 if (60 <= minute && minute < 1440) { if (minute % 60 == 0) { long h = minute / 60; return h + "小时"; } else { long h = minute / 60; long m = minute % 60; return h + "小时" + m + "分钟"; } } //如果分钟大于1天 if (minute >= 1440) { long d = minute / 60 / 24; long h = minute / 60 % 24; long m = minute % 60; String s1 = null; if (d > 0) { s1 = d + "天"; } //h如果计算大于等于1再展示,否则只展示天和分钟 if (h >= 1) { s1 += h + "小时"; } if (m > 0) { s1 += m + "分钟"; } return s1; } return null; } public static void main(String[] args) { // System.out.println(millisToDayHrMinSec(1450)); } }