public class DateUtilsextends PropertyEditorSupport {
// 各種時間格式
? public static final SimpleDateFormatdate_sdf =new SimpleDateFormat("yyyy-MM-dd");
// 各種時間格式
? public static final SimpleDateFormatyyyyMMdd =new SimpleDateFormat("yyyyMMdd");
// 各種時間格式
? public static final SimpleDateFormatdate_sdf_wz =new SimpleDateFormat("yyyy年MM月dd日");
public static final SimpleDateFormattime_sdf =new SimpleDateFormat("yyyy-MM-dd HH:mm");
public static final SimpleDateFormatyyyymmddhhmmss =new SimpleDateFormat("yyyyMMddHHmmss");
public static final SimpleDateFormatshort_time_sdf =new SimpleDateFormat("HH:mm");
public static final SimpleDateFormatdatetimeFormat =new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
// 以毫秒表示的時間
? private static final long DAY_IN_MILLIS =24 *3600 *1000;
private static final long HOUR_IN_MILLIS =3600 *1000;
private static final long MINUTE_IN_MILLIS =60 *1000;
private static final long SECOND_IN_MILLIS =1000;
// 指定模式的時間格式
? private static SimpleDateFormat getSDFormat(String pattern) {
return new SimpleDateFormat(pattern);
}
/**
* 當(dāng)前日歷鹦倚,這里用中國時間表示
*
? ? * @return 以當(dāng)?shù)貢r區(qū)表示的系統(tǒng)當(dāng)前日歷
*/
? public static Calendar getCalendar() {
return Calendar.getInstance();
}
/**
* 指定毫秒數(shù)表示的日歷
*
? ? * @param millis 毫秒數(shù)
? ? * @return 指定毫秒數(shù)表示的日歷
*/
? public static Calendar getCalendar(long millis) {
Calendar cal = Calendar.getInstance();
// --------------------cal.setTimeInMillis(millis);
? ? ? cal.setTime(new Date(millis));
return cal;
}
// ////////////////////////////////////////////////////////////////////////////
// getDate
// 各種方式獲取的Date
// ////////////////////////////////////////////////////////////////////////////
/**
* 當(dāng)前日期
*
? ? * @return 系統(tǒng)當(dāng)前時間
*/
? public static Date getDate() {
return new Date();
}
/**
* 指定毫秒數(shù)表示的日期
*
? ? * @param millis 毫秒數(shù)
? ? * @return 指定毫秒數(shù)表示的日期
*/
? public static Date getDate(long millis) {
return new Date(millis);
}
/**
* 時間戳轉(zhuǎn)換為字符串
*
? ? * @param time
? ? * @return
? ? */
? public static String timestamptoStr(Timestamp time) {
Date date =null;
if (null != time) {
date =new Date(time.getTime());
}
return date2Str(date_sdf);
}
/**
* 字符串轉(zhuǎn)換時間戳
*
? ? * @param str
? ? * @return
? ? */
? public static Timestamp str2Timestamp(String str) {
Date date =str2Date(str,date_sdf);
return new Timestamp(date.getTime());
}
/**
* 字符串轉(zhuǎn)換成日期
*
? ? * @param str
? ? * @param sdf
? ? * @return
? ? */
? public static Date str2Date(String str, SimpleDateFormat sdf) {
if (null == str ||"".equals(str)) {
return null;
}
Date date =null;
try {
date = sdf.parse(str);
return date;
}catch (ParseException e) {
e.printStackTrace();
}
return null;
}
/**
* 日期轉(zhuǎn)換為字符串
*
? ? * @param date? 日期
? ? * @param format 日期格式
? ? * @return 字符串
*/
? public static String date2Str(SimpleDateFormatdate_sdf) {
Date date =getDate();
if (null == date) {
return null;
}
return date_sdf.format(date);
}
/**
* 格式化時間
*
? ? * @param date
? ? * @param format
? ? * @return
? ? */
? public static String dateformat(String date, String format) {
SimpleDateFormat sformat =new SimpleDateFormat(format);
Date_date=null;
try {
_date = sformat.parse(date);
}catch (ParseException e) {
// TODO Auto-generated catch block
? ? ? ? e.printStackTrace();
}
return sformat.format(_date);
}
/**
* 日期轉(zhuǎn)換為字符串
*
? ? * @param date? 日期
? ? * @param format 日期格式
? ? * @return 字符串
*/
? public static String date2Str(Date date, SimpleDateFormatdate_sdf) {
if (null == date) {
return null;
}
return date_sdf.format(date);
}
/**
* 日期轉(zhuǎn)換為字符串
*
? ? * @param date? 日期
? ? * @param format 日期格式
? ? * @return 字符串
*/
? public static String getDate(String format) {
Date date =new Date();
if (null == date) {
return null;
}
SimpleDateFormat sdf =new SimpleDateFormat(format);
return sdf.format(date);
}
/**
* 指定毫秒數(shù)的時間戳
*
? ? * @param millis 毫秒數(shù)
? ? * @return 指定毫秒數(shù)的時間戳
*/
? public static Timestamp getTimestamp(long millis) {
return new Timestamp(millis);
}
/**
* 以字符形式表示的時間戳
*
? ? * @param time 毫秒數(shù)
? ? * @return 以字符形式表示的時間戳
*/
? public static Timestamp getTimestamp(String time) {
return new Timestamp(Long.parseLong(time));
}
/**
* 系統(tǒng)當(dāng)前的時間戳
*
? ? * @return 系統(tǒng)當(dāng)前的時間戳
*/
? public static Timestamp getTimestamp() {
return new Timestamp(System.currentTimeMillis());
}
/**
* 當(dāng)前時間岖食,格式 yyyy-MM-dd HH:mm:ss
*
? ? * @return 當(dāng)前時間的標(biāo)準(zhǔn)形式字符串
*/
? public static String now() {
return datetimeFormat.format(getCalendar().getTime());
}
public static String formatDataToString(Date date) {
return datetimeFormat.format(date);
}
/**
* 指定日期的時間戳
*
? ? * @param date 指定日期
? ? * @return 指定日期的時間戳
*/
? public static Timestamp getTimestamp(Date date) {
return new Timestamp(date.getTime());
}
/**
* 指定日歷的時間戳
*
? ? * @param cal 指定日歷
? ? * @return 指定日歷的時間戳
*/
? public static Timestamp getCalendarTimestamp(Calendar cal) {
// ---------------------return new Timestamp(cal.getTimeInMillis());
? ? ? return new Timestamp(cal.getTime().getTime());
}
public static Timestamp gettimestamp() {
Date dt =new Date();
DateFormat df =new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
String nowTime = df.format(dt);
java.sql.Timestamp buydate = java.sql.Timestamp.valueOf(nowTime);
return buydate;
}
// ////////////////////////////////////////////////////////////////////////////
// getMillis
// 各種方式獲取的Millis
// ////////////////////////////////////////////////////////////////////////////
/**
* 系統(tǒng)時間的毫秒數(shù)
*
? ? * @return 系統(tǒng)時間的毫秒數(shù)
*/
? public static long getMillis() {
return System.currentTimeMillis();
}
/**
* 指定日歷的毫秒數(shù)
*
? ? * @param cal 指定日歷
? ? * @return 指定日歷的毫秒數(shù)
*/
? public static long getMillis(Calendar cal) {
// --------------------return cal.getTimeInMillis();
? ? ? return cal.getTime().getTime();
}
/**
* 指定日期的毫秒數(shù)
*
? ? * @param date 指定日期
? ? * @return 指定日期的毫秒數(shù)
*/
? public static long getMillis(Date date) {
return date.getTime();
}
/**
* 指定時間戳的毫秒數(shù)
*
? ? * @param ts 指定時間戳
? ? * @return 指定時間戳的毫秒數(shù)
*/
? public static long getMillis(Timestamp ts) {
return ts.getTime();
}
// ////////////////////////////////////////////////////////////////////////////
// formatDate
// 將日期按照一定的格式轉(zhuǎn)化為字符串
// ////////////////////////////////////////////////////////////////////////////
/**
* 默認(rèn)方式表示的系統(tǒng)當(dāng)前日期蛀蜜,具體格式:年-月-日
*
? ? * @return 默認(rèn)日期按“年-月-日“格式顯示
*/
? public static String formatDate() {
return date_sdf.format(getCalendar().getTime());
}
/**
* 默認(rèn)方式表示的系統(tǒng)當(dāng)前日期蛔溃,具體格式:yyyy-MM-dd HH:mm:ss
*
? ? * @return 默認(rèn)日期按“yyyy-MM-dd HH:mm:ss“格式顯示
*/
? public static String formatDateTime() {
return datetimeFormat.format(getCalendar().getTime());
}
/**
* 獲取時間字符串
*/
? public static String getDataString(SimpleDateFormat formatstr) {
return formatstr.format(getCalendar().getTime());
}
/**
* 指定日期的默認(rèn)顯示俐镐,具體格式:年-月-日
*
? ? * @param cal 指定的日期
? ? * @return 指定日期按“年-月-日“格式顯示
*/
? public static String formatDate(Calendar cal) {
return date_sdf.format(cal.getTime());
}
/**
* 指定日期的默認(rèn)顯示秒梳,具體格式:年-月-日
*
? ? * @param date 指定的日期
? ? * @return 指定日期按“年-月-日“格式顯示
*/
? public static String formatDate(Date date) {
return date_sdf.format(date);
}
/**
* 指定毫秒數(shù)表示日期的默認(rèn)顯示,具體格式:年-月-日
*
? ? * @param millis 指定的毫秒數(shù)
? ? * @return 指定毫秒數(shù)表示日期按“年-月-日“格式顯示
*/
? public static String formatDate(long millis) {
return date_sdf.format(new Date(millis));
}
/**
* 默認(rèn)日期按指定格式顯示
*
? ? * @param pattern 指定的格式
? ? * @return 默認(rèn)日期按指定格式顯示
*/
? public static String formatDate(String pattern) {
return getSDFormat(pattern).format(getCalendar().getTime());
}
/**
* 指定日期按指定格式顯示
*
? ? * @param cal? ? 指定的日期
? ? * @param pattern 指定的格式
? ? * @return 指定日期按指定格式顯示
*/
? public static String formatDate(Calendar cal, String pattern) {
return getSDFormat(pattern).format(cal.getTime());
}
/**
* 指定日期按指定格式顯示
*
? ? * @param date? ? 指定的日期
? ? * @param pattern 指定的格式
? ? * @return 指定日期按指定格式顯示
*/
? public static String formatDate(Date date, String pattern) {
return getSDFormat(pattern).format(date);
}
// ////////////////////////////////////////////////////////////////////////////
// formatTime
// 將日期按照一定的格式轉(zhuǎn)化為字符串
// ////////////////////////////////////////////////////////////////////////////
/**
* 默認(rèn)方式表示的系統(tǒng)當(dāng)前日期凭戴,具體格式:年-月-日 時:分
*
? ? * @return 默認(rèn)日期按“年-月-日 時:分“格式顯示
*/
? public static String formatTime() {
return time_sdf.format(getCalendar().getTime());
}
/**
* 指定毫秒數(shù)表示日期的默認(rèn)顯示涧狮,具體格式:年-月-日 時:分
*
? ? * @param millis 指定的毫秒數(shù)
? ? * @return 指定毫秒數(shù)表示日期按“年-月-日 時:分“格式顯示
*/
? public static String formatTime(long millis) {
return time_sdf.format(new Date(millis));
}
/**
* 指定日期的默認(rèn)顯示,具體格式:年-月-日 時:分
*
? ? * @param cal 指定的日期
? ? * @return 指定日期按“年-月-日 時:分“格式顯示
*/
? public static String formatTime(Calendar cal) {
return time_sdf.format(cal.getTime());
}
/**
* 指定日期的默認(rèn)顯示么夫,具體格式:年-月-日 時:分
*
? ? * @param date 指定的日期
? ? * @return 指定日期按“年-月-日 時:分“格式顯示
*/
? public static String formatTime(Date date) {
return time_sdf.format(date);
}
// ////////////////////////////////////////////////////////////////////////////
// formatShortTime
// 將日期按照一定的格式轉(zhuǎn)化為字符串
// ////////////////////////////////////////////////////////////////////////////
/**
* 默認(rèn)方式表示的系統(tǒng)當(dāng)前日期者冤,具體格式:時:分
*
? ? * @return 默認(rèn)日期按“時:分“格式顯示
*/
? public static String formatShortTime() {
return short_time_sdf.format(getCalendar().getTime());
}
/**
* 指定毫秒數(shù)表示日期的默認(rèn)顯示,具體格式:時:分
*
? ? * @param millis 指定的毫秒數(shù)
? ? * @return 指定毫秒數(shù)表示日期按“時:分“格式顯示
*/
? public static String formatShortTime(long millis) {
return short_time_sdf.format(new Date(millis));
}
/**
* 指定日期的默認(rèn)顯示档痪,具體格式:時:分
*
? ? * @param cal 指定的日期
? ? * @return 指定日期按“時:分“格式顯示
*/
? public static String formatShortTime(Calendar cal) {
return short_time_sdf.format(cal.getTime());
}
/**
* 指定日期的默認(rèn)顯示涉枫,具體格式:時:分
*
? ? * @param date 指定的日期
? ? * @return 指定日期按“時:分“格式顯示
*/
? public static String formatShortTime(Date date) {
return short_time_sdf.format(date);
}
// ////////////////////////////////////////////////////////////////////////////
// parseDate
// parseCalendar
// parseTimestamp
// 將字符串按照一定的格式轉(zhuǎn)化為日期或時間
// ////////////////////////////////////////////////////////////////////////////
/**
* 根據(jù)指定的格式將字符串轉(zhuǎn)換成Date 如輸入:2003-11-19 11:20:20將按照這個轉(zhuǎn)成時間
*
? ? * @param src? ? 將要轉(zhuǎn)換的原始字符竄
? ? * @param pattern 轉(zhuǎn)換的匹配格式
? ? * @return 如果轉(zhuǎn)換成功則返回轉(zhuǎn)換后的日期
? ? * @throws ParseException
? ? * @throws AIDateFormatException
*/
? public static Date parseDate(String src, String pattern)throws ParseException {
return getSDFormat(pattern).parse(src);
}
/**
* 根據(jù)指定的格式將字符串轉(zhuǎn)換成Date 如輸入:2003-11-19 11:20:20將按照這個轉(zhuǎn)成時間
*
? ? * @param src? ? 將要轉(zhuǎn)換的原始字符竄
? ? * @param pattern 轉(zhuǎn)換的匹配格式
? ? * @return 如果轉(zhuǎn)換成功則返回轉(zhuǎn)換后的日期
? ? * @throws ParseException
? ? * @throws AIDateFormatException
*/
? public static Calendar parseCalendar(String src, String pattern)throws ParseException {
Date date =parseDate(src, pattern);
Calendar cal = Calendar.getInstance();
cal.setTime(date);
return cal;
}
public static String formatAddDate(String src, String pattern,int amount)throws ParseException {
Calendar cal;
cal =parseCalendar(src, pattern);
cal.add(Calendar.DATE, amount);
return formatDate(cal);
}
/**
* 根據(jù)指定的格式將字符串轉(zhuǎn)換成Date 如輸入:2003-11-19 11:20:20將按照這個轉(zhuǎn)成時間
*
? ? * @param src? ? 將要轉(zhuǎn)換的原始字符竄
? ? * @param pattern 轉(zhuǎn)換的匹配格式
? ? * @return 如果轉(zhuǎn)換成功則返回轉(zhuǎn)換后的時間戳
? ? * @throws ParseException
? ? * @throws AIDateFormatException
*/
? public static Timestamp parseTimestamp(String src, String pattern)throws ParseException {
Date date =parseDate(src, pattern);
return new Timestamp(date.getTime());
}
// ////////////////////////////////////////////////////////////////////////////
// dateDiff
// 計算兩個日期之間的差值
// ////////////////////////////////////////////////////////////////////////////
/**
* 計算兩個時間之間的差值,根據(jù)標(biāo)志的不同而不同
*
? ? * @param flag? 計算標(biāo)志腐螟,表示按照年/月/日/時/分/秒等計算
? ? * @param calSrc 減數(shù)
? ? * @param calDes 被減數(shù)
? ? * @return 兩個日期之間的差值
*/
? public static int dateDiff(char flag, Calendar calSrc, Calendar calDes) {
long millisDiff =getMillis(calSrc) -getMillis(calDes);
if (flag =='y') {
return (calSrc.get(calSrc.YEAR) - calDes.get(calDes.YEAR));
}
if (flag =='d') {
return (int) (millisDiff /DAY_IN_MILLIS);
}
if (flag =='h') {
return (int) (millisDiff /HOUR_IN_MILLIS);
}
if (flag =='m') {
return (int) (millisDiff /MINUTE_IN_MILLIS);
}
if (flag =='s') {
return (int) (millisDiff /SECOND_IN_MILLIS);
}
return 0;
}
/**
* String類型 轉(zhuǎn)換為Date, 如果參數(shù)長度為10 轉(zhuǎn)換格式”yyyy-MM-dd“ 如果參數(shù)長度為19 轉(zhuǎn)換格式”yyyy-MM-dd
* HH:mm:ss“ * @param text String類型的時間值
*/
? @Override
? public void setAsText(String text)throws IllegalArgumentException {
if (StringUtils.hasText(text)) {
try {
if (text.indexOf(":") == -1 && text.length() ==10) {
setValue(this.date_sdf.parse(text));
}else if (text.indexOf(":") >0 && text.length() ==19) {
setValue(this.datetimeFormat.parse(text));
}else {
throw new IllegalArgumentException("Could not parse date, date format is error ");
}
}catch (ParseException ex) {
IllegalArgumentException iae =new IllegalArgumentException("Could not parse date: " + ex.getMessage());
iae.initCause(ex);
throw iae;
}
}else {
setValue(null);
}
}
public static int getYear() {
GregorianCalendar calendar =new GregorianCalendar();
calendar.setTime(getDate());
return calendar.get(Calendar.YEAR);
}
// 獲取本周的開始時間
? public static Date getBeginDayOfWeek() {
Date date =new Date();
if (date ==null) {
return null;
}
Calendar cal = Calendar.getInstance();
cal.setTime(date);
int dayofweek = cal.get(Calendar.DAY_OF_WEEK);
//? ? if (dayofweek == 1) {
//? ? ? dayofweek += 7;
//? ? }
? ? ? cal.add(Calendar.DATE,1 - dayofweek);
return getDayStartTime(cal.getTime());
}
// 獲取本周的結(jié)束時間
? public static Date getEndDayOfWeek() {
Calendar cal = Calendar.getInstance();
cal.setTime(getBeginDayOfWeek());
cal.add(Calendar.DAY_OF_WEEK,6);
Date weekEndSta = cal.getTime();
return getDayEndTime(weekEndSta);
}
// 獲取上周的開始時間
? public static Date getBeginDayOfLastWeek() {
Date date =new Date();
if (date ==null) {
return null;
}
Calendar cal = Calendar.getInstance();
cal.setTime(date);
int dayofweek = cal.get(Calendar.DAY_OF_WEEK);
//? ? if (dayofweek == 1) {
//? ? ? dayofweek += 7;
//? ? }
? ? ? cal.add(Calendar.DATE,1 - dayofweek -7);
return getDayStartTime(cal.getTime());
}
// 獲取上周的結(jié)束時間
? public static Date getEndDayOfLastWeek() {
Calendar cal = Calendar.getInstance();
cal.setTime(getBeginDayOfLastWeek());
cal.add(Calendar.DAY_OF_WEEK,6);
Date weekEndSta = cal.getTime();
return getDayEndTime(weekEndSta);
}
// 獲取某個日期的開始時間
? public static Timestamp getDayStartTime(Date d) {
Calendar calendar = Calendar.getInstance();
if (null != d)
calendar.setTime(d);
calendar.set(calendar.get(Calendar.YEAR), calendar.get(Calendar.MONTH),
calendar.get(Calendar.DAY_OF_MONTH),0,0,0);
calendar.set(Calendar.MILLISECOND,0);
return new Timestamp(calendar.getTimeInMillis());
}
// 獲取某個日期的結(jié)束時間
? public static Timestamp getDayEndTime(Date d) {
Calendar calendar = Calendar.getInstance();
if (null != d)
calendar.setTime(d);
calendar.set(calendar.get(Calendar.YEAR), calendar.get(Calendar.MONTH),
calendar.get(Calendar.DAY_OF_MONTH),23,59,59);
calendar.set(Calendar.MILLISECOND,999);
return new Timestamp(calendar.getTimeInMillis());
}
// 獲取本月的開始時間
? ? public static Date getBeginDayOfMonth() {
Calendar calendar = Calendar.getInstance();
calendar.set(getNowYear(),getNowMonth() -1,1);
return getDayStartTime(calendar.getTime());
}
// 獲取本月的結(jié)束時間
? ? public static Date getEndDayOfMonth() {
Calendar calendar = Calendar.getInstance();
calendar.set(getNowYear(),getNowMonth() -1,1);
int day = calendar.getActualMaximum(5);
calendar.set(getNowYear(),getNowMonth() -1, day);
return getDayEndTime(calendar.getTime());
}
// 獲取上月的開始時間
? ? public static Date getBeginDayOfLastMonth() {
Calendar calendar = Calendar.getInstance();
calendar.set(getNowYear(),getNowMonth() -2,1);
return getDayStartTime(calendar.getTime());
}
// 獲取上月的結(jié)束時間
? ? public static Date getEndDayOfLastMonth() {
Calendar calendar = Calendar.getInstance();
calendar.set(getNowYear(),getNowMonth() -2,1);
int day = calendar.getActualMaximum(5);
calendar.set(getNowYear(),getNowMonth() -2, day);
return getDayEndTime(calendar.getTime());
}
// 獲取本年的開始時間
? ? public static Date getBeginDayOfYear() {
Calendar cal = Calendar.getInstance();
Integer year =getNowMonth() <=9 ?getNowYear() -1 :getNowYear();
cal.set(Calendar.YEAR, year);
cal.set(Calendar.MONTH, Calendar.OCTOBER);
cal.set(Calendar.DATE,1);
return getDayStartTime(cal.getTime());
}
// 獲取本年的結(jié)束時間
? ? public static java.util.Date getEndDayOfYear() {
Calendar cal = Calendar.getInstance();
Integer year =getNowMonth() <=9 ?getNowYear() :getNowYear()+1;
cal.set(Calendar.YEAR, year);
cal.set(Calendar.MONTH, Calendar.SEPTEMBER);
cal.set(Calendar.DATE,30);
return getDayEndTime(cal.getTime());
}
// 獲取本年的開始時間
? ? public static Date getBeginDayOfLastYear() {
Calendar cal = Calendar.getInstance();
Integer year =getNowMonth() <=9 ?getNowYear() -2 :getNowYear()-1;
cal.set(Calendar.YEAR, year);
cal.set(Calendar.MONTH, Calendar.OCTOBER);
cal.set(Calendar.DATE,1);
return getDayStartTime(cal.getTime());
}
// 獲取本年的結(jié)束時間
? ? public static java.util.Date getEndDayOfLastYear() {
Calendar cal = Calendar.getInstance();
Integer year =getNowMonth() <=9 ?getNowYear() -1 :getNowYear();
cal.set(Calendar.YEAR, year);
cal.set(Calendar.MONTH, Calendar.SEPTEMBER);
cal.set(Calendar.DATE,30);
return getDayEndTime(cal.getTime());
}
// 獲取本季度的開始時間
? ? public static Date getBeginDayOfSeason() {
final int[]SEASON= {0,0,0,3,3,3,6,6,6,9,9,9 };
Calendar cal = Calendar.getInstance();
cal.set(Calendar.YEAR,getNowYear());
cal.set(Calendar.MONTH, SEASON[getNowMonth()-1]);
cal.set(Calendar.DATE,1);
return getDayStartTime(cal.getTime());
}
// 獲取本季的結(jié)束時間
? ? public static java.util.Date getEndDayOfSeason() {
final int[]SEASON= {2,2,2,5,5,5,8,8,8,11,11,11 };
Calendar cal = Calendar.getInstance();
cal.set(Calendar.YEAR,getNowYear());
cal.set(Calendar.MONTH, SEASON[getNowMonth()-1]);
cal.set(Calendar.DATE,31);
return getDayEndTime(cal.getTime());
}
// 獲取本季度的開始時間
? ? public static Date getBeginDayOfLastSeason() {
final int[]SEASON= {9,9,9,0,0,0,3,3,3,6,6,6 };
Calendar cal = Calendar.getInstance();
Integer year = SEASON[getNowMonth()-1] ==9 ?getNowYear()-1 :getNowYear();
cal.set(Calendar.YEAR, year);
cal.set(Calendar.MONTH, SEASON[getNowMonth()-1]);
cal.set(Calendar.DATE,1);
return getDayStartTime(cal.getTime());
}
// 獲取本季的結(jié)束時間
? ? public static java.util.Date getEndDayOfLastSeason() {
final int[]SEASON= {11,11,11,2,2,2,5,5,5,8,8,8 };
Calendar cal = Calendar.getInstance();
Integer year = SEASON[getNowMonth()-1] ==11 ?getNowYear()-1 :getNowYear();
cal.set(Calendar.YEAR, year);
cal.set(Calendar.MONTH, SEASON[getNowMonth()-1]);
cal.set(Calendar.DATE,31);
return getDayEndTime(cal.getTime());
}
// 獲取半年的開始時間
? ? public static Date getBeginDayOfHalfYear() {
final int[]HALFYEAR= {9,9,9,3,3,3,3,3,3,9,9,9 };
Integer year =getNowYear();
if(getNowMonth()-1 <3){
year = year-1;
}
Calendar cal = Calendar.getInstance();
cal.set(Calendar.YEAR, year);
cal.set(Calendar.MONTH, HALFYEAR[getNowMonth()-1]);
cal.set(Calendar.DATE,1);
return getDayStartTime(cal.getTime());
}
// 獲取半年的結(jié)束時間
? ? public static java.util.Date getEndDayOfHalfYear() {
final int[]HALFYEAR= {2,2,2,8,8,8,8,8,8,2,2,2 };
Calendar cal = Calendar.getInstance();
Integer year =getNowYear();
if(getNowMonth()-1 >8){
year = year+1;
}
cal.set(Calendar.YEAR, year);
cal.set(Calendar.MONTH, HALFYEAR[getNowMonth()-1]);
if(HALFYEAR[getNowMonth()-1] ==2){
cal.set(Calendar.DATE,31);
}else{
cal.set(Calendar.DATE,30);
}
return getDayEndTime(cal.getTime());
}
// 獲取半年的開始時間
? ? public static Date getBeginDayOfLastHalfYear() {
final int[]HALFYEAR= {3,3,3,9,9,9,9,9,9,3,3,3};
Calendar cal = Calendar.getInstance();
Integer year =getNowYear();
if(getNowMonth()-1 <9){
year = year-1;
}
cal.set(Calendar.YEAR, year);
cal.set(Calendar.MONTH, HALFYEAR[getNowMonth()-1]);
cal.set(Calendar.DATE,1);
return getDayStartTime(cal.getTime());
}
// 獲取半年的結(jié)束時間
? ? public static java.util.Date getEndDayOfLastHalfYear() {
final int[]HALFYEAR= {8,8,8,2,2,2,2,2,2 ,8,8,8};
Calendar cal = Calendar.getInstance();
Integer year =getNowYear();
if(getNowMonth()-1 <3){
year = year-1;
}
cal.set(Calendar.YEAR, year);
cal.set(Calendar.MONTH, HALFYEAR[getNowMonth()-1]);
if(HALFYEAR[getNowMonth()-1] ==2){
cal.set(Calendar.DATE,31);
}else{
cal.set(Calendar.DATE,30);
}
return getDayEndTime(cal.getTime());
}
// 獲取今年是哪一年
? ? public static Integer getNowYear() {
Date date =new Date();
GregorianCalendar gc = (GregorianCalendar) Calendar.getInstance();
gc.setTime(date);
return Integer.valueOf(gc.get(1));
}
// 獲取本月是哪一月
? ? public static int getNowMonth() {
Date date =new Date();
GregorianCalendar gc = (GregorianCalendar) Calendar.getInstance();
gc.setTime(date);
return gc.get(2) +1;
}
}