日期工具类(常用)
package com.bcht.bigdata.dsjmh.api.utils;
import org.apache.commons.lang3.StringUtils;
import java.sql.Timestamp;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.*;
public class DateUtils {
public static String dateFormat = "yyyy-MM-dd";
public static String timeFormat = "yyyy-MM-dd HH:mm:ss";
public static String timeFormat2 = "yyyyMMddHHmmss";
public static final SimpleDateFormat TIME_FORMAT =
new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
public static final SimpleDateFormat DATE_FORMAT =
new SimpleDateFormat("yyyy-MM-dd");
public static final SimpleDateFormat DATEKEY_FORMAT =
new SimpleDateFormat("yyyyMMdd");
public static String toDateStr(Date date) {
return toStr(date, dateFormat);
}
public static String toTimeStr(Date date) {
return toStr(date, timeFormat);
}
public static String toTimeStr2(Date date) {
return toStr(date, timeFormat2);
}
public static String toStr(Date date, String format) {
if (date != null) {
SimpleDateFormat sdf = new SimpleDateFormat(format);
return sdf.format(date);
}
return "";
}
public static Date toDate(String dateStr) {
return toDate(dateStr, dateFormat);
}
public static Date toTime(String dateStr) {
return toDate(dateStr, timeFormat);
}
public static Date toDate(String dateStr, String format) {
if (StringUtils.isNotEmpty(dateStr)) {
SimpleDateFormat sdf = new SimpleDateFormat(format);
try {
return sdf.parse(dateStr);
} catch (ParseException e) {
e.printStackTrace();
}
}
return null;
}
public static Timestamp getlocaltime() {
Timestamp time = new Timestamp(System.currentTimeMillis());
return time;
}
public static Timestamp toTimestamp(Date date) {
Timestamp time = new Timestamp(date.getTime());
return time;
}
public static String DateToString() {
return toStr(new Date(), timeFormat);
}
public static Date getBeginOfDate(Date date) {
Calendar cal = Calendar.getInstance();
cal.setTime(date);
int hour = cal.get(Calendar.HOUR_OF_DAY);
int minute = cal.get(Calendar.MINUTE);
int second = cal.get(Calendar.SECOND);
long millisecond = hour * 60 * 60 * 1000 + minute * 60 * 1000 + second * 1000;
cal.setTimeInMillis(cal.getTimeInMillis() - millisecond);
return cal.getTime();
}
public static Date getDateByDays(int days) {
Calendar cal = Calendar.getInstance();
cal.add(Calendar.DAY_OF_MONTH, days);
return cal.getTime();
}
public static Date getEndDayOfWeek() {
Calendar cal = Calendar.getInstance();
cal.setTime(getBeginDayOfWeek());
cal.add(Calendar.DAY_OF_WEEK, 6);
cal.set(cal.get(Calendar.YEAR), cal.get(Calendar.MONTH), cal.get(Calendar.DAY_OF_MONTH), 23, 59, 59);
cal.set(Calendar.MILLISECOND, 999);
return cal.getTime();
}
public static Date getBeginDayOfWeek() {
Date date = new Date();
Calendar cal = Calendar.getInstance();
cal.setTime(date);
int dayofweek = cal.get(Calendar.DAY_OF_WEEK);
if (dayofweek == 1) {
dayofweek += 7;
}
cal.add(Calendar.DATE, 2 - dayofweek);
cal.set(cal.get(Calendar.YEAR), cal.get(Calendar.MONTH), cal.get(Calendar.DAY_OF_MONTH), 0, 0, 0);
cal.set(Calendar.MILLISECOND, 0);
return cal.getTime();
}
public static int compare_date(String DATE1, String DATE2) {
SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd");
try {
Date dt1 = df.parse(DATE1);
Date dt2 = df.parse(DATE2);
if (dt1.getTime() > dt2.getTime()) {
return 1;
} else if (dt1.getTime() < dt2.getTime()) {
return -1;
} else {
return 0;
}
} catch (Exception exception) {
exception.printStackTrace();
}
return 0;
}
public static Integer getDays(String cntDateBeg, String cntDateEnd) {
Integer day = 0;
String[] dateBegs = cntDateBeg.split("-");
String[] dateEnds = cntDateEnd.split("-");
Calendar start = Calendar.getInstance();
start.set(Integer.valueOf(dateBegs[0]), Integer.valueOf(dateBegs[1]) - 1, Integer.valueOf(dateBegs[2]));
Long startTIme = start.getTimeInMillis();
Calendar end = Calendar.getInstance();
end.set(Integer.valueOf(dateEnds[0]), Integer.valueOf(dateEnds[1]) - 1, Integer.valueOf(dateEnds[2]));
Long endTime = end.getTimeInMillis();
Long oneDay = 1000 * 60 * 60 * 24l;
Long time = startTIme;
while (time <= endTime) {
day++;
time += oneDay;
}
return day;
}
public static Integer getWeeks(String startDate, String endDate) {
if (StringUtils.isNotEmpty(startDate) && StringUtils.isNotEmpty(endDate)) {
Date start = toDate(startDate);
Date end = toDate(endDate);
Calendar cal = Calendar.getInstance();
cal.setTime(start);
long time1 = cal.getTimeInMillis();
cal.setTime(end);
long time2 = cal.getTimeInMillis();
long between_days = (time2 - time1) / (1000 * 3600 * 24);
Double days = Double.parseDouble(String.valueOf(between_days));
if ((days / 7) > 0 && (days / 7) <= 1) {
return 1;
} else if (days / 7 > 1) {
int day = days.intValue();
if (day % 7 > 0) {
return day / 7 + 1;
} else {
return day / 7;
}
} else if ((days / 7) == 0) {
return 0;
} else {
return null;
}
}
return null;
}
public static String getWeekBegin(String date) throws ParseException {
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
Calendar cal = Calendar.getInstance();
Date time = sdf.parse(date);
cal.setTime(time);
int dayWeek = cal.get(Calendar.DAY_OF_WEEK);
if (1 == dayWeek) {
cal.add(Calendar.DAY_OF_MONTH, -1);
}
cal.setFirstDayOfWeek(Calendar.MONDAY);
int day = cal.get(Calendar.DAY_OF_WEEK);
cal.add(Calendar.DATE, cal.getFirstDayOfWeek() - day);
String getWeekBegin = sdf.format(cal.getTime());
return getWeekBegin;
}
public static Map getNumDay(String startTime, String endTime, int num) {
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
Map map = new HashMap();
try {
Date dateBegin = sdf.parse(startTime);
Date dateEnd = sdf.parse(endTime);
String dateBegin1 = sdf.format(org.apache.commons.lang3.time.DateUtils.addDays(dateBegin, num));
String dateend1 = sdf.format(org.apache.commons.lang3.time.DateUtils.addDays(dateEnd, num));
map.put("dateBegin", dateBegin1);
map.put("dateEnd", dateend1);
} catch (ParseException e) {
e.printStackTrace();
}
return map;
}
public static String getNumMinute(String Time, int num) {
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm");
String dateMinute ="";
Map map = new HashMap();
try {
Date dateBegin = sdf.parse(Time);
dateMinute = sdf.format(org.apache.commons.lang3.time.DateUtils.addMinutes(dateBegin, num));
} catch (ParseException e) {
e.printStackTrace();
}
return dateMinute;
}
public static Map getNumDayTwo(String startTime, String endTime, int num) {
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
Map map = new HashMap();
try {
Date dateBegin = sdf.parse(startTime);
Date dateEnd = sdf.parse(endTime);
String dateBegin1 = sdf.format(org.apache.commons.lang3.time.DateUtils.addDays(dateBegin, num));
String dateend1 = sdf.format(org.apache.commons.lang3.time.DateUtils.addDays(dateEnd, num));
map.put("dateBegin", dateBegin1);
map.put("dateEnd", dateend1);
} catch (ParseException e) {
e.printStackTrace();
}
return map;
}
public static Map getNumWeekDay(String startTime, String endTime, int num) {
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
Map map = new HashMap();
try {
Date dateBegin = sdf.parse(startTime);
Date dateEnd = sdf.parse(endTime);
String dateBegin1 = sdf.format(org.apache.commons.lang3.time.DateUtils.addWeeks(dateBegin, num));
String dateend1 = sdf.format(org.apache.commons.lang3.time.DateUtils.addWeeks(dateEnd, num));
map.put("dateBegin", dateBegin1);
map.put("dateEnd", dateend1);
} catch (ParseException e) {
e.printStackTrace();
}
return map;
}
public static Map getNumMonthDay(String startTime, String endTime, int num) {
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
Map map = new HashMap();
try {
Date dateBegin = sdf.parse(startTime);
Date dateEnd = sdf.parse(endTime);
String dateBegin1 = sdf.format(org.apache.commons.lang3.time.DateUtils.addMonths(dateBegin, num));
String dateend1 = sdf.format(org.apache.commons.lang3.time.DateUtils.addMonths(dateEnd, num));
map.put("dateBegin", dateBegin1);
map.put("dateEnd", dateend1);
} catch (ParseException e) {
e.printStackTrace();
}
return map;
}
public static List<String> getMonthBetween(String startDate, String endDate) {
ArrayList<String> result = new ArrayList<String>();
try {
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM");
Calendar min = Calendar.getInstance();
Calendar max = Calendar.getInstance();
min.setTime(sdf.parse(startDate));
min.set(min.get(Calendar.YEAR), min.get(Calendar.MONTH), 1);
max.setTime(sdf.parse(endDate));
max.set(max.get(Calendar.YEAR), max.get(Calendar.MONTH), 2);
Calendar curr = min;
while (curr.before(max)) {
result.add(sdf.format(curr.getTime()));
curr.add(Calendar.MONTH, 1);
}
} catch (ParseException e) {
e.printStackTrace();
}
return result;
}
public static String getLastMonth(Date date, String format) {
SimpleDateFormat sdf = new SimpleDateFormat(format);
Calendar calendar = Calendar.getInstance();
calendar.setTime(date);
calendar.add(Calendar.MONTH,-1);
return sdf.format(calendar.getTime());
}
public static Map getNumYearhDay(String startTime, String endTime, int num) {
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
Map map = new HashMap();
try {
Date dateBegin = sdf.parse(startTime);
Date dateEnd = sdf.parse(endTime);
String dateBegin1 = sdf.format(org.apache.commons.lang3.time.DateUtils.addYears(dateBegin, num));
String dateend1 = sdf.format(org.apache.commons.lang3.time.DateUtils.addYears(dateEnd, num));
map.put("dateBegin", dateBegin1);
map.put("dateEnd", dateend1);
} catch (ParseException e) {
e.printStackTrace();
}
return map;
}
public static Map getNumJdDay(String startTime, String endTime, int num) {
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
Map map = new HashMap();
try {
Date dateBegin = sdf.parse(startTime);
Date dateEnd = sdf.parse(endTime);
String dateBegin1 = sdf.format(org.apache.commons.lang3.time.DateUtils.addMonths(dateBegin, num * 3));
String dateend1 = sdf.format(org.apache.commons.lang3.time.DateUtils.addMonths(dateEnd, num * 3));
map.put("dateBegin", dateBegin1);
map.put("dateEnd", dateend1);
} catch (ParseException e) {
e.printStackTrace();
}
return map;
}
public static String getOneYearAgo(String time) {
SimpleDateFormat sdf = new SimpleDateFormat(timeFormat);
Calendar calendar = Calendar.getInstance();
Date date = null;
try {
date = sdf.parse(time);
calendar.setTime(date);
calendar.add(Calendar.YEAR, -1);
Date after = calendar.getTime();
return sdf.format(after);
} catch (ParseException e) {
e.printStackTrace();
}
return time;
}
public static String getOneYearAgo(String time, String format) {
SimpleDateFormat sdf = new SimpleDateFormat(format);
Calendar calendar = Calendar.getInstance();
Date date = null;
try {
date = sdf.parse(time);
calendar.setTime(date);
calendar.add(Calendar.YEAR, -1);
Date after = calendar.getTime();
return sdf.format(after);
} catch (ParseException e) {
e.printStackTrace();
}
return time;
}
public static String getOneQuarterAgo(String time) {
SimpleDateFormat sdf = new SimpleDateFormat(timeFormat);
Calendar calendar = Calendar.getInstance();
Date date = null;
try {
date = sdf.parse(time);
calendar.setTime(date);
calendar.add(Calendar.MONTH, -3);
Date after = calendar.getTime();
return sdf.format(after);
} catch (ParseException e) {
e.printStackTrace();
}
return time;
}
public static String getOneMonthAgo(String time) {
SimpleDateFormat sdf = new SimpleDateFormat(timeFormat);
Calendar calendar = Calendar.getInstance();
Date date = null;
try {
date = sdf.parse(time);
calendar.setTime(date);
calendar.add(Calendar.MONTH, -1);
Date after = calendar.getTime();
return sdf.format(after);
} catch (ParseException e) {
e.printStackTrace();
}
return time;
}
public static String getOneMonthAgo(String time,String format) {
SimpleDateFormat sdf = new SimpleDateFormat(format);
Calendar calendar = Calendar.getInstance();
Date date = null;
try {
date = sdf.parse(time);
calendar.setTime(date);
calendar.add(Calendar.MONTH, -1);
Date after = calendar.getTime();
return sdf.format(after);
} catch (ParseException e) {
e.printStackTrace();
}
return time;
}
public static String getOneWeekAgo(String time) {
SimpleDateFormat sdf = new SimpleDateFormat(timeFormat);
Calendar calendar = Calendar.getInstance();
Date date = null;
try {
date = sdf.parse(time);
calendar.setTime(date);
calendar.add(Calendar.WEEK_OF_YEAR, -1);
Date after = calendar.getTime();
return sdf.format(after);
} catch (ParseException e) {
e.printStackTrace();
}
return time;
}
public static String getOneDayAgo(String time) {
SimpleDateFormat sdf = new SimpleDateFormat(timeFormat);
Calendar calendar = Calendar.getInstance();
Date date = null;
try {
date = sdf.parse(time);
calendar.setTime(date);
calendar.add(Calendar.DAY_OF_MONTH, -1);
Date after = calendar.getTime();
return sdf.format(after);
} catch (ParseException e) {
e.printStackTrace();
}
return time;
}
public static String getStartTimeOfDay(String yearMonthDay) {
return yearMonthDay + " 00:00:00";
}
public static String getEndTimeOfDay(String yearMonthDay) {
return yearMonthDay + " 23:59:59";
}
public static String getStartTimeOfWeek(String yearWeek) {
SimpleDateFormat sdf = new SimpleDateFormat(dateFormat);
Calendar cal = Calendar.getInstance();
String[] params = yearWeek.split("-");
cal.set(Calendar.YEAR, Integer.parseInt(params[0]));
cal.set(Calendar.WEEK_OF_YEAR, Integer.parseInt(params[1]));
cal.set(Calendar.DAY_OF_WEEK, Calendar.MONDAY);
return sdf.format(cal.getTime()) + " 00:00:00";
}
public static String getEndTimeOfWeek(String yearWeek) {
SimpleDateFormat sdf = new SimpleDateFormat(dateFormat);
Calendar cal = Calendar.getInstance();
String[] params = yearWeek.split("-");
cal.set(Calendar.YEAR, Integer.parseInt(params[0]));
cal.set(Calendar.WEEK_OF_YEAR, Integer.parseInt(params[1]) + 1);
cal.set(Calendar.DAY_OF_WEEK, Calendar.SUNDAY);
return sdf.format(cal.getTime()) + " 23:59:59";
}
public static String getStartTimeOfMonth(String yearMonth) {
SimpleDateFormat sdf = new SimpleDateFormat(dateFormat);
Calendar cal = Calendar.getInstance();
String[] params = yearMonth.split("-");
cal.set(Calendar.YEAR, Integer.parseInt(params[0]));
cal.set(Calendar.MONTH, Integer.parseInt(params[1]) - 1);
cal.set(Calendar.DAY_OF_MONTH, 1);
return sdf.format(cal.getTime()) + " 00:00:00";
}
public static String getEndTimeOfMonth(String yearMonth) {
SimpleDateFormat ss = new SimpleDateFormat(dateFormat);
Calendar cal = Calendar.getInstance();
String[] params = yearMonth.split("-");
cal.set(Calendar.YEAR, Integer.parseInt(params[0]));
cal.set(Calendar.MONTH, Integer.parseInt(params[1]) - 1);
cal.set(Calendar.DAY_OF_MONTH, 1);
cal.roll(Calendar.DATE, -1);
return ss.format(cal.getTime()) + " 23:59:59";
}
public static String getStartTimeOfQuarter(String yearnQuarter) {
SimpleDateFormat sdf = new SimpleDateFormat(dateFormat);
Calendar cal = Calendar.getInstance();
String[] params = yearnQuarter.split("-");
if (params.length < 2) {
throw new RuntimeException("参数不正确");
}
int quarter = Integer.parseInt(params[1]);
cal.set(Calendar.YEAR, Integer.parseInt(params[0]));
cal.set(Calendar.DAY_OF_MONTH, 1);
if (quarter == 1) {
cal.set(Calendar.MONTH, Calendar.JANUARY);
} else if (quarter == 2) {
cal.set(Calendar.MONTH, Calendar.APRIL);
} else if (quarter == 3) {
cal.set(Calendar.MONTH, Calendar.JULY);
} else if (quarter == 4) {
cal.set(Calendar.MONTH, Calendar.OCTOBER);
}
return sdf.format(cal.getTime()) + " 00:00:00";
}
public static String getEndTimeOfQuarter(String yearnQuarter) {
SimpleDateFormat sdf = new SimpleDateFormat(dateFormat);
Calendar cal = Calendar.getInstance();
String[] params = yearnQuarter.split("-");
int quarter = Integer.parseInt(params[1]);
cal.set(Calendar.YEAR, Integer.parseInt(params[0]));
if (quarter == 1) {
cal.set(Calendar.MONTH, Calendar.MARCH);
int num = cal.getActualMaximum(Calendar.DAY_OF_MONTH);
cal.set(Calendar.DAY_OF_MONTH, num);
} else if (quarter == 2) {
cal.set(Calendar.MONTH, Calendar.JUNE);
int num = cal.getActualMaximum(Calendar.DAY_OF_MONTH);
cal.set(Calendar.DAY_OF_MONTH, num);
} else if (quarter == 3) {
cal.set(Calendar.MONTH, Calendar.SEPTEMBER);
int num = cal.getActualMaximum(Calendar.DAY_OF_MONTH);
cal.set(Calendar.DAY_OF_MONTH, num);
} else if (quarter == 4) {
cal.set(Calendar.MONTH, Calendar.DECEMBER);
int num = cal.getActualMaximum(Calendar.DAY_OF_MONTH);
cal.set(Calendar.DAY_OF_MONTH, num);
}
return sdf.format(cal.getTime()) + " 23:59:59";
}
public static String getStartTimeOfYear(String year) {
return year + "-01-01 00:00:00";
}
public static String getEndTimeOfYear(String year) {
return year + "-12-31 23:59:59";
}
public static String fixToTwoDigitStr(Integer param) {
if (param < 10) {
return "0" + param;
} else {
return param + "";
}
}
public static Map getBeginAndEndTimeOfWeek(int year, int week) {
Calendar calendar = Calendar.getInstance();
calendar.set(year, 0, 1);
int dayOfWeek = 7 - calendar.get(Calendar.DAY_OF_WEEK) + 2;
week = week - 2;
calendar.add(Calendar.DAY_OF_YEAR, week * 7 + dayOfWeek);
SimpleDateFormat sf = new SimpleDateFormat("yyyy-MM-dd");
String dateStart = sf.format(calendar.getTime());
calendar.add(Calendar.DAY_OF_YEAR, 6);
String dateEnd = sf.format(calendar.getTime());
Map<String, String> map = new HashMap<>();
map.put("startDate", dateStart);
map.put("dateEnd", dateEnd);
return map;
}
public static int getDayNumBetween(Date date1, Date date2) {
SimpleDateFormat sf = new SimpleDateFormat("yyyy-MM-dd");
Calendar cal1 = Calendar.getInstance();
Calendar cal2 = Calendar.getInstance();
cal1.setTime(date1);
cal2.setTime(date2);
int day1 = cal1.get(Calendar.DAY_OF_YEAR);
int day2 = cal2.get(Calendar.DAY_OF_YEAR);
int year1 = cal1.get(Calendar.YEAR);
int year2 = cal2.get(Calendar.YEAR);
if (year1 != year2) {
int timeDistance = 0;
for (int i = year1; i < year2; i++) {
if (i % 4 == 0 && i % 100 != 0 || i % 400 == 0)
{
timeDistance += 366;
} else
{
timeDistance += 365;
}
}
return timeDistance + (day2 - day1);
} else {
System.out.println("判断day2 - day1 : " + (day2 - day1));
System.out.println(day2 - day1);
return day2 - day1;
}
}
public static void main(String[] args) throws ParseException {
Calendar cal = Calendar.getInstance();
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
Date d = sdf.parse("2019-01-01");
cal.setTime(d);
System.out.println(cal.get(Calendar.YEAR));
System.out.println(cal.get(Calendar.MONTH));
System.out.println(cal.get(Calendar.WEEK_OF_YEAR));
System.out.println(getLastMonth(new Date(),"yyyyMM"));
}
public static String getAddTime(String str, Integer n) {
SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
Date date = new Date();
try {
date = df.parse(str);
} catch (ParseException e) {
e.printStackTrace();
}
date.setTime(date.getTime() + n * 1000);
return df.format(date);
}
public static int getNowWeekOfYear() {
Calendar calendar = Calendar.getInstance();
int i = calendar.get(Calendar.WEEK_OF_YEAR);
return i;
}
public static boolean before(String time1, String time2) {
try {
Date dateTime1 = TIME_FORMAT.parse(time1);
Date dateTime2 = TIME_FORMAT.parse(time2);
if (dateTime1.before(dateTime2)) {
return true;
}
} catch (Exception e) {
System.out.println(time1);
System.out.println(time2);
e.printStackTrace();
}
return false;
}
public static boolean after(String time1, String time2) {
try {
Date dateTime1 = TIME_FORMAT.parse(time1);
Date dateTime2 = TIME_FORMAT.parse(time2);
if (dateTime1.after(dateTime2)) {
return true;
}
} catch (Exception e) {
e.printStackTrace();
}
return false;
}
public static int minus(String time1, String time2) {
try {
Date datetime1 = TIME_FORMAT.parse(time1);
Date datetime2 = TIME_FORMAT.parse(time2);
long millisecond = datetime1.getTime() - datetime2.getTime();
return Integer.valueOf(String.valueOf(millisecond / 1000));
} catch (Exception e) {
e.printStackTrace();
}
return 0;
}
public static String getDateHour(String datetime) {
String date = datetime.split(" ")[0];
String hourMinuteSecond = datetime.split(" ")[1];
String hour = hourMinuteSecond.split(":")[0];
return date + "_" + hour;
}
public static String getTodayDate() {
return DATE_FORMAT.format(new Date());
}
public static String getTodayTime() {
return TIME_FORMAT.format(new Date());
}
public static String getYesterdayDate() {
Calendar cal = Calendar.getInstance();
cal.setTime(new Date());
cal.add(Calendar.DAY_OF_YEAR, -1);
Date date = cal.getTime();
return DATE_FORMAT.format(date);
}
public static String getMonthDate() {
Calendar cal = Calendar.getInstance();
cal.setTime(new Date());
Date date = cal.getTime();
return DATEKEY_FORMAT.format(date);
}
public static String getMonthDate(String date,int addMonth) {
SimpleDateFormat df = new SimpleDateFormat("yyyyMM");
try {
Date month = df.parse(date);
Calendar cal = Calendar.getInstance();
cal.setTime(month);
cal.add(Calendar.MONTH,addMonth);
return df.format(cal.getTime());
} catch (ParseException e) {
e.printStackTrace( );
}
return getLastMonth(new Date(),"yyyyMM");
}
public static String getMingday() {
Calendar cal = Calendar.getInstance();
cal.setTime(new Date());
cal.add(Calendar.DAY_OF_YEAR, 1);
Date date = cal.getTime();
return DATE_FORMAT.format(date);
}
public static String formatDate(Date date) {
return DATE_FORMAT.format(date);
}
public static String formatTime(Date date) {
return TIME_FORMAT.format(date);
}
public static Date parseTime(String time) {
try {
return TIME_FORMAT.parse(time);
} catch (ParseException e) {
e.printStackTrace();
}
return null;
}
public static String formatDateKey(Date date) {
return DATEKEY_FORMAT.format(date);
}
public static Date parseDateKey(String datekey) {
try {
return DATEKEY_FORMAT.parse(datekey);
} catch (ParseException e) {
e.printStackTrace();
}
return null;
}
public static String formatTimeMinute(Date date) {
SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMddHHmm");
return sdf.format(date);
}
public static String formatTimeMillis(Date date) {
SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMddHHmmss");
return sdf.format(date);
}
public static String getYestoMinute(String dateMin) {
SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMddHHmm");
Date parse = null;
try {
parse = sdf.parse(dateMin);
} catch (ParseException e) {
e.printStackTrace();
}
Calendar cal = Calendar.getInstance();
cal.setTime(parse);
cal.add(Calendar.MINUTE, -1);
Date time = cal.getTime();
String format = sdf.format(time);
return format;
}
public static String getLastMin(int lastMinute) {
SimpleDateFormat sdf = new SimpleDateFormat(timeFormat);
Date parse = new Date();
Calendar cal = Calendar.getInstance();
cal.setTime(parse);
cal.add(Calendar.MINUTE, lastMinute);
Date time = cal.getTime();
String format = sdf.format(time);
return format;
}
public static String getYestoHour(String dateMin) {
SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMddHHmm");
Date parse = null;
try {
parse = sdf.parse(dateMin);
} catch (ParseException e) {
e.printStackTrace();
}
Calendar cal = Calendar.getInstance();
cal.setTime(parse);
cal.add(Calendar.HOUR, -1);
Date time = cal.getTime();
String format = sdf.format(time);
return format;
}
public static String getRangeTime(String dateTime) {
String date = dateTime.split(" ")[0];
String hour = dateTime.split(" ")[1].split(":")[0];
int minute = com.bcht.bigdata.dsjmh.api.utils.StringUtils.convertStringtoInt(dateTime.split(" ")[1].split(":")[1]);
if (minute + (5 - minute % 5) == 60) {
return date + " " + hour + ":" + com.bcht.bigdata.dsjmh.api.utils.StringUtils.fulfuill((minute - (minute % 5)) + "") + "~" + date + " " + com.bcht.bigdata.dsjmh.api.utils.StringUtils.fulfuill((Integer.parseInt(hour) + 1) + "") + ":00";
}
return date + " " + hour + ":" + com.bcht.bigdata.dsjmh.api.utils.StringUtils.fulfuill((minute - (minute % 5)) + "") + "~" + date + " " + hour + ":" + com.bcht.bigdata.dsjmh.api.utils.StringUtils.fulfuill((minute + (5 - minute % 5)) + "");
}
public static List<String> findDaysStr(String begintTime, String endTime) {
SimpleDateFormat sdf = new SimpleDateFormat(dateFormat);
Date dBegin = null;
Date dEnd = null;
try {
dBegin = sdf.parse(begintTime);
dEnd = sdf.parse(endTime);
} catch (ParseException e) {
e.printStackTrace();
}
List<String> daysStrList = new ArrayList<String>();
daysStrList.add(sdf.format(dBegin));
Calendar calBegin = Calendar.getInstance();
calBegin.setTime(dBegin);
Calendar calEnd = Calendar.getInstance();
calEnd.setTime(dEnd);
while (dEnd.after(calBegin.getTime())) {
calBegin.add(Calendar.DAY_OF_MONTH, 1);
String dayStr = sdf.format(calBegin.getTime());
daysStrList.add(dayStr);
}
return daysStrList;
}
public static String getYearAgo(String time,int ago){
String year = "";
if (time.contains("-"))
year = time.substring(0,time.indexOf("-"));
if (time.contains(" "))
year = time.substring(0,time.indexOf(" "));
if (time.length()>=4)
year = time.substring(0,4);
return (Integer.parseInt(year)+ago)+time.substring(year.length());
}
}
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· Docker 太简单,K8s 太复杂?w7panel 让容器管理更轻松!