import java.util.Calendar; |
import java.sql.Date; |
import java.text.SimpleDateFormat; |
import java.text.ParseException; |
/** |
* Utility to date time |
* @version 0.1 |
* @author Super Zhao |
*/ |
public class DateTimeUtil |
{ |
/** |
* 由java.util.Date到java.sql.Date的类型转换 |
* @param date |
* @return Date |
*/ |
public static Date getSqlDate (java.util.Date date) |
{ |
return new Date (date.getTime() ); |
} |
public static Date nowDate() |
{ |
Calendar calendar = Calendar.getInstance(); |
return getSqlDate (calendar.getTime() ); |
} |
/** |
* 获得某一日期的后一天 |
* @param date |
* @return Date |
*/ |
public static Date getNextDate (Date date) |
{ |
Calendar calendar = Calendar.getInstance(); |
calendar.setTime (date); |
int day = calendar.get (Calendar.DATE); |
calendar.set (Calendar.DATE, day + 1 ); |
return getSqlDate (calendar.getTime() ); |
} |
/** |
* 获得某一日期的前一天 |
* @param date |
* @return Date |
*/ |
public static Date getPreviousDate (Date date) |
{ |
Calendar calendar = Calendar.getInstance(); |
calendar.setTime (date); |
int day = calendar.get (Calendar.DATE); |
calendar.set (Calendar.DATE, day - 1 ); |
return getSqlDate (calendar.getTime() ); |
} |
/** |
* 获得某年某月第一天的日期 |
* @param year |
* @param month |
* @return Date |
*/ |
public static Date getFirstDayOfMonth ( int year, int month) |
{ |
Calendar calendar = Calendar.getInstance(); |
calendar.set (Calendar.YEAR, year); |
calendar.set (Calendar.MONTH, month - 1 ); |
calendar.set (Calendar.DATE, 1 ); |
return getSqlDate (calendar.getTime() ); |
} |
/** |
* 获得某年某月最后一天的日期 |
* @param year |
* @param month |
* @return Date |
*/ |
public static Date getLastDayOfMonth ( int year, int month) |
{ |
Calendar calendar = Calendar.getInstance(); |
calendar.set (Calendar.YEAR, year); |
calendar.set (Calendar.MONTH, month); |
calendar.set (Calendar.DATE, 1 ); |
return getPreviousDate (getSqlDate (calendar.getTime() ) ); |
} |
/** |
* 由年月日构建java.sql.Date类型 |
* @param year |
* @param month |
* @param date |
* @return Date |
*/ |
public static Date buildDate ( int year, int month, int date) |
{ |
Calendar calendar = Calendar.getInstance(); |
calendar.set (year, month - 1 , date); |
return getSqlDate (calendar.getTime() ); |
} |
/** |
* 取得某月的天数 |
* @param year |
* @param month |
* @return int |
*/ |
public static int getDayCountOfMonth ( int year, int month) |
{ |
Calendar calendar = Calendar.getInstance(); |
calendar.set (Calendar.YEAR, year); |
calendar.set (Calendar.MONTH, month); |
calendar.set (Calendar.DATE, 0 ); |
return calendar.get (Calendar.DATE); |
} |
/** |
* 获得某年某季度的最后一天的日期 |
* @param year |
* @param quarter |
* @return Date |
*/ |
public static Date getLastDayOfQuarter ( int year, int quarter) |
{ |
int month = 0 ; |
if (quarter > 4 ) |
{ |
return null ; |
} |
else |
{ |
month = quarter * 3 ; |
} |
return getLastDayOfMonth (year, month); |
} |
/** |
* 获得某年某季度的第一天的日期 |
* @param year |
* @param quarter |
* @return Date |
*/ |
public static Date getFirstDayOfQuarter ( int year, int quarter) |
{ |
int month = 0 ; |
if (quarter > 4 ) |
{ |
return null ; |
} |
else |
{ |
month = (quarter - 1 ) * 3 + 1 ; |
} |
return getFirstDayOfMonth (year, month); |
} |
/** |
* 获得某年的第一天的日期 |
* @param year |
* @return Date |
*/ |
public static Date getFirstDayOfYear ( int year) |
{ |
return getFirstDayOfMonth (year, 1 ); |
} |
/** |
* 获得某年的最后一天的日期 |
* @param year |
* @return Date |
*/ |
public static Date getLastDayOfYear ( int year) |
{ |
return getLastDayOfMonth (year, 12 ); |
} |
/** |
* String到java.sql.Date的类型转换 |
* @param param |
* @return Date |
*/ |
public static java.sql.Date StringToDate (String param) |
{ |
if (StringUtil.nullOrBlank (param) ) |
{ |
return null ; |
} |
else |
{ |
java.util.Date date = null ; |
try |
{ |
SimpleDateFormat sdf = new SimpleDateFormat ( "yyyy-MM-dd" ); |
date = sdf.parse (param); |
return new Date (date.getTime() ); |
} |
catch (ParseException ex) |
{ |
//ex.printStackTrace(); |
return null ; |
} |
} |
} |
} |