java通用的時間格式類

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;

}

}

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末愿汰,一起剝皮案震驚了整個濱河市困后,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌衬廷,老刑警劉巖操灿,帶你破解...
    沈念sama閱讀 219,188評論 6 508
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異泵督,居然都是意外死亡趾盐,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,464評論 3 395
  • 文/潘曉璐 我一進(jìn)店門小腊,熙熙樓的掌柜王于貴愁眉苦臉地迎上來救鲤,“玉大人,你說我怎么就攤上這事秩冈”静” “怎么了?”我有些...
    開封第一講書人閱讀 165,562評論 0 356
  • 文/不壞的土叔 我叫張陵入问,是天一觀的道長丹锹。 經(jīng)常有香客問我,道長芬失,這世上最難降的妖魔是什么楣黍? 我笑而不...
    開封第一講書人閱讀 58,893評論 1 295
  • 正文 為了忘掉前任,我火速辦了婚禮棱烂,結(jié)果婚禮上租漂,老公的妹妹穿的比我還像新娘。我一直安慰自己颊糜,他們只是感情好哩治,可當(dāng)我...
    茶點故事閱讀 67,917評論 6 392
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著衬鱼,像睡著了一般业筏。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上鸟赫,一...
    開封第一講書人閱讀 51,708評論 1 305
  • 那天蒜胖,我揣著相機與錄音,去河邊找鬼惯疙。 笑死翠勉,一個胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的霉颠。 我是一名探鬼主播对碌,決...
    沈念sama閱讀 40,430評論 3 420
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼蒿偎!你這毒婦竟也來了朽们?” 一聲冷哼從身側(cè)響起怀读,我...
    開封第一講書人閱讀 39,342評論 0 276
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎骑脱,沒想到半個月后菜枷,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,801評論 1 317
  • 正文 獨居荒郊野嶺守林人離奇死亡叁丧,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,976評論 3 337
  • 正文 我和宋清朗相戀三年啤誊,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片拥娄。...
    茶點故事閱讀 40,115評論 1 351
  • 序言:一個原本活蹦亂跳的男人離奇死亡蚊锹,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出稚瘾,到底是詐尸還是另有隱情牡昆,我是刑警寧澤,帶...
    沈念sama閱讀 35,804評論 5 346
  • 正文 年R本政府宣布摊欠,位于F島的核電站丢烘,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏些椒。R本人自食惡果不足惜播瞳,卻給世界環(huán)境...
    茶點故事閱讀 41,458評論 3 331
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望摊沉。 院中可真熱鬧狐史,春花似錦痒给、人聲如沸说墨。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,008評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽尼斧。三九已至,卻和暖如春试吁,著一層夾襖步出監(jiān)牢的瞬間棺棵,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 33,135評論 1 272
  • 我被黑心中介騙來泰國打工熄捍, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留烛恤,地道東北人。 一個月前我還...
    沈念sama閱讀 48,365評論 3 373
  • 正文 我出身青樓余耽,卻偏偏與公主長得像缚柏,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子碟贾,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 45,055評論 2 355