<!-- flowchart 箭头图标 勿删 -->
<svg style="display: none;">
<path d="M5,0 0,2.5 5,5z" id="raphael-marker-block" stroke-linecap="round" style="-webkit-tap-highlight-color: rgba(0, 0, 0, 0);"></path>
</svg>
<p>package com.java.mvc.util;</p>
<p>import java.text.DateFormat; <br>
import java.text.ParseException; <br>
import java.text.SimpleDateFormat; <br>
import java.util.ArrayList; <br>
import java.util.Calendar; <br>
import java.util.Date; <br>
import java.util.GregorianCalendar; <br>
import java.util.List;</p>
<p>public class DateUtils {</p>
<pre class="blockcode"><code>public final static String FORMAT_YYYY_MM_DD = "yyyy-MM-dd";
public final static String FORMAT_YYYY_MM_DD_HH_MM_SS = "yyyy-MM-dd hh:mm:ss";
public final static String FORMAT_YYYYMMDD = "yyyyMMdd";
public final static String FORMAT_YYYYMM = "yyyyMM";
public final static String FORMAT_YYYY = "yyyy";
public final static String FORMAT_YYYYMMDDHHMISS = "yyyyMMdd HH:mm:ss";
public final static String FORMAT_YYYYMMDDHHMMSS = "yyyyMMddHHmmss";
public final static String FORMAT_YYYY_MM_DD_HH_MI_SS = "yyyy-MM-dd HH:mm:ss";
public final static String FORMAT_YYYY_MM_DD_HH_MI_SS_SSS = "yyyy-MM-dd HH:mm:ss:SSS";
public final static String FORMAT_YYYY_MM = "yyyy-MM";
public final static String FORMAT_DD_HH_MM_SS = "dd HH:mm:ss";
public final static String FORMAT_HH_MM_SS = "HH:mm:ss";
public static final int USE_YEAR = 1;
public static final int USE_MONTH = 2;
public static final int USE_DAY = 3;
/**
* 根据相应的格式初始化日期格式对象
* @param pattern
* @return
*/
public static DateFormat getDateFormat(final String pattern) {
return new SimpleDateFormat(pattern);
}
/**
* 获取距离当前日期第N天的日期,若为days>0则为当前日期后几天,否则为前几天
* @param days
* @return
*/
public static Date getPreviousOrNextDaysOfNow(int days) {
return getPreviousOrNextDaysOfDate(new Date(), days);
}
/**
* 返回当前日期的 格式为: format(yyyy-MM-dd)
* @return
*/
public static String getCurrentDate() {
Date now = new Date();
return getDateFormat(FORMAT_YYYY_MM_DD).format(now);
}
/**
* 返回指定日期和指定格式日期字符串
* @return
*/
public static String getSpecifyDate(Date date,String pattern) {
return getDateFormat(pattern).format(date);
}
/**
* 返回当前日期的 格式为: format(yyyy-MM-dd HH:MM:SS)
* @return
*/
public static String getCurrentDateTime() {
Date now = new Date();
return getDateFormat(FORMAT_YYYY_MM_DD_HH_MM_SS).format(now);
}
/**
* Current date with format(yyyy-MM-dd HH:MM:SS:SSS)
* @return
*/
public static String getCurrentDateTimeMilliSecond(Date date) {
return getDateFormat(FORMAT_YYYY_MM_DD_HH_MI_SS_SSS).format(date);
}
/**
* 根据相应时间格式(yyyy-MM-dd HH:MM:SS:SSS)字符串转换为Date
* @return
*/
public static Date getDateByTimeMilliSecond(String date) throws ParseException{
SimpleDateFormat sdf = new SimpleDateFormat(FORMAT_YYYY_MM_DD_HH_MI_SS_SSS);
return sdf.parse(date);
}
/**
* 根据相应时间格式字符串转换为Date
* @return
*/
public static Date getDateByPattern(String date,String pattern) throws ParseException{
SimpleDateFormat sdf = new SimpleDateFormat(pattern);
return sdf.parse(date);
}
/**
* 获取当月的第一天
* @return
*/
public static Date getFirstDayOfThisMonth() {
Calendar nowday = Calendar.getInstance();
nowday.set(Calendar.DAY_OF_MONTH, 1);
nowday.set(Calendar.HOUR_OF_DAY, 0);
nowday.set(Calendar.MINUTE, 0);
nowday.set(Calendar.SECOND, 0);
nowday.set(Calendar.MILLISECOND, 0);
return nowday.getTime();
}
/**
* 得到当前日期的上月日期
* @return
*/
public static Date getLastMonth() {
Calendar nowday = Calendar.getInstance();
nowday.setTime(new Date());
nowday.set(Calendar.DAY_OF_MONTH, 1);
nowday.add(Calendar.MONTH, -1);
return nowday.getTime();
}
public static Date getLastDayByCalendar(Calendar calendar) {
calendar.set(Calendar.DAY_OF_MONTH, calendar.getActualMaximum(Calendar.DAY_OF_MONTH));
return calendar.getTime();
}
/**
* 判断指定日期是否在当前N天内
* @param old
* @param days
* @return
*/
public static boolean isDaysInterval(Date old, int days) {
Calendar now = Calendar.getInstance();
return (now.getTimeInMillis() - old.getTime()) <= days * 24 * 3600 * 1000;
}
/**
* 根据日历获取相应月份的第一天
* @param calendar
* @return
*/
public static Date getFirstDayOfTheMonth(Calendar calendar) {
calendar.set(Calendar.DAY_OF_MONTH, 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();
}
/**
* 获取指定日期之前或者之后的日期
* @param days Day
* @return
*/
public static Date getPreviousOrNextDaysOfDate(Date date, int days) {
Calendar calendar = Calendar.getInstance();
calendar.setTime(date);
calendar.add(Calendar.DAY_OF_YEAR, days);
return calendar.getTime();
}
/**
* 获取与指定日期相差月份数的相同日期
* @param date
* @param month
* @return
*/
public static Date getPreviousOrNextMonthsOfDate(Date date, int month) {
Calendar calendar = Calendar.getInstance();
calendar.setTime(date);
calendar.add(Calendar.MONTH, month);
return calendar.getTime();
}
/**
* 获 |
|