java时间处理 转至:http://abushuia.javaeye.com/blog/145945
2012年04月11日
⁄ 综合
⁄ 共 18646字 ⁄ 字号
小 中 大
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- package com.aimtime.financing.service.util;
- import java.util.Calendar;
- import java.util.Date;
- import java.util.GregorianCalendar;
- import java.text.*;public abstract class TimeUtil {
-
-
-
- public static Calendar now = Calendar.getInstance();
- int year = now.get( Calendar.YEAR );
- int date = now.get( Calendar.DAY_OF_MONTH );
- int month = now.get( Calendar.MONTH ) + 1;
- int hour = now.get( Calendar.HOUR );
- int min = now.get( Calendar.MINUTE );
- int sec = now.get( Calendar.SECOND );
-
-
-
-
-
-
-
-
-
-
-
- public static java.util.Date toUtilDateFromStrDateByFormat( String p_strDate, String p_format )
- throws ParseException {
- java.util.Date l_date = null;
- java.text.DateFormat df = new java.text.SimpleDateFormat( p_format );
- if ( p_strDate != null && ( !"".equals( p_strDate ) ) && p_format != null && ( !"".equals( p_format ) ) ) {
- l_date = df.parse( p_strDate );
- }
- return l_date;
- }
-
-
-
-
-
-
-
-
-
-
-
- public static java.sql.Date toSqlDateFromStrDate( String p_strDate ) throws ParseException {
- java.sql.Date returnDate = null;
- java.text.DateFormat sdf = new java.text.SimpleDateFormat();
- if ( p_strDate != null && ( !"".equals( p_strDate ) ) ) {
- returnDate = new java.sql.Date( sdf.parse( p_strDate ).getTime() );
- }
- return returnDate;
- }
-
-
-
-
-
-
-
-
-
-
-
-
-
- public static String toStrDateFromUtilDateByFormat( java.util.Date p_utilDate, String p_format ) throws ParseException {
- String l_result = "";
- if ( p_utilDate != null ) {
- SimpleDateFormat sdf = new SimpleDateFormat( p_format );
- l_result = sdf.format( p_utilDate );
- }
- return l_result;
- }
-
-
-
-
-
-
-
-
- public static Calendar toCalendarFromUtilDate(java.util.Date p_utilDate) {
- Calendar c = Calendar.getInstance();
- c.setTime(p_utilDate);
- return c;
- }
-
-
-
-
-
-
-
-
- public static java.sql.Date toSqlDateFromUtilDate( java.util.Date p_utilDate ) {
- java.sql.Date returnDate = null;
- if ( p_utilDate != null ) {
- returnDate = new java.sql.Date( p_utilDate.getTime() );
- }
- return returnDate;
- }
-
-
-
-
-
-
-
-
- public static java.sql.Time toSqlTimeFromUtilDate( java.util.Date p_utilDate ) {
- java.sql.Time returnDate = null;
- if ( p_utilDate != null ) {
- returnDate = new java.sql.Time( p_utilDate.getTime() );
- }
- return returnDate;
- }
-
-
-
-
-
-
-
-
- public static java.sql.Timestamp toSqlTimestampFromUtilDate( java.util.Date p_utilDate ) {
- java.sql.Timestamp returnDate = null;
- if ( p_utilDate != null ) {
- returnDate = new java.sql.Timestamp( p_utilDate.getTime() );
- }
- return returnDate;
- }
-
-
-
-
-
-
-
-
- public static java.util.Date toUtilDateFromSqlDate( java.sql.Date p_sqlDate ) {
- java.util.Date returnDate = null;
- if ( p_sqlDate != null ) {
- returnDate = new java.util.Date( p_sqlDate.getTime() );
- }
- return returnDate;
- }
-
-
-
-
-
-
-
-
-
- public static int getYearOfDate( java.util.Date p_date ) {
- java.util.Calendar c = java.util.Calendar.getInstance();
- c.setTime( p_date );
- return c.get( java.util.Calendar.YEAR );
- }
-
-
-
-
-
-
-
-
- public static int getMonthOfDate( java.util.Date p_date ) {
- java.util.Calendar c = java.util.Calendar.getInstance();
- c.setTime( p_date );
- return c.get( java.util.Calendar.MONTH ) + 1;
- }
-
-
-
-
-
-
-
-
- public static int getDayOfDate( java.util.Date p_date ) {
- java.util.Calendar c = java.util.Calendar.getInstance();
- c.setTime( p_date );
- return c.get( java.util.Calendar.DAY_OF_MONTH );
- }
-
-
-
-
-
-
-
-
- public static int getHourOfDate( java.util.Date p_date ) {
- java.util.Calendar c = java.util.Calendar.getInstance();
- c.setTime( p_date );
- return c.get( java.util.Calendar.HOUR_OF_DAY );
- }
-
-
-
-
-
-
-
-
- public static int getMinuteOfDate( java.util.Date p_date ) {
- java.util.Calendar c = java.util.Calendar.getInstance();
- c.setTime( p_date );
- return c.get( java.util.Calendar.MINUTE );
- }
-
-
-
-
-
-
-
-
- public static int getSecondOfDate( java.util.Date p_date ) {
- java.util.Calendar c = java.util.Calendar.getInstance();
- c.setTime( p_date );
- return c.get( java.util.Calendar.SECOND );
- }
-
-
-
-
-
-
-
-
- public static long getMillisOfDate( java.util.Date p_date ) {
- java.util.Calendar c = java.util.Calendar.getInstance();
- c.setTime( p_date );
- return c.getTimeInMillis();
- }
-
-
-
-
-
-
-
-
-
-
-
-
-
- public static String getNowOfDateByFormat( String p_format ) {
- Date d = new Date();
- SimpleDateFormat sdf = new SimpleDateFormat( p_format );
- String dateStr = sdf.format( d );
- return dateStr;
- }
-
-
-
-
-
-
-
-
-
-
-
-
- public static String getSystemOfDateByFormat( String p_format ) {
- long time = System.currentTimeMillis();
- Date d2 = new Date();
- Date d = new Date( time );
- SimpleDateFormat sdf = new SimpleDateFormat( p_format );
- String dateStr = sdf.format( d );
- return dateStr;
- }
-
-
-
-
-
-
-
- public static long getDayOfMonth( Date p_date ) throws ParseException {
- int year = getYearOfDate(p_date);
- int month = getMonthOfDate( p_date )-1;
- int day = getDayOfDate( p_date );
- int hour = getHourOfDate( p_date );
- int minute = getMinuteOfDate( p_date );
- int second = getSecondOfDate( p_date );
- Calendar l_calendar = new GregorianCalendar(year,month,day,hour,minute,second);
-
- return l_calendar.getActualMaximum( l_calendar.DAY_OF_MONTH );
- }
-
-
-
-
-
-
-
-
-
-
- public static String getDateOfMonthBegin( String p_strDate, String p_format ) throws ParseException {
- java.util.Date date = toUtilDateFromStrDateByFormat( p_strDate,p_format );
- return toStrDateFromUtilDateByFormat( date,"yyyy-MM" ) + "-01";
- }
-
-
-
-
-
-
-
-
-
- public static String getDateOfMonthEnd( String p_strDate, String p_format ) throws ParseException {
- java.util.Date date = toUtilDateFromStrDateByFormat( getDateOfMonthBegin( p_strDate,p_format ),p_format );
- Calendar calendar = Calendar.getInstance();
- calendar.setTime( date );
- calendar.add( Calendar.MONTH,1 );
- calendar.add( Calendar.DAY_OF_YEAR,-1 );
- return toStrDateFromUtilDateByFormat( calendar.getTime(),p_format );
- }
-
- }package com.aimtime.financing.service.util;import java.text.ParseException;
- import java.text.SimpleDateFormat;
- import java.util.Calendar;
- import java.util.Date;
- import java.util.GregorianCalendar;import org.apache.log4j.Logger;
-
-
- public class DateUtil extends TimeUtil {
-
-
-
- private static final Logger logger = Logger.getLogger( DateUtil.class );
-
-
-
- private static final SimpleDateFormat sdf = new SimpleDateFormat( "yyyy-MM-dd" );
-
-
-
-
- public DateUtil() {}
-
-
-
-
-
-
-
-
-
-
-
- public static boolean isStartDateBeforeEndDate( Date p_startDate, Date p_endDate ) throws ParseException {
- long l_startTime = getMillisOfDate( p_startDate );
- long l_endTime = getMillisOfDate( p_endDate );
- return ( l_startTime - l_endTime > (long) 0 ) ? true : false;
- }
-
-
-
-
-
-
-
-
-
- public static long getDaysOfTowDiffDate( String p_startDate, String p_endDate ) throws ParseException {
-
- Date l_startDate = toUtilDateFromStrDateByFormat( p_startDate,"yyyy-MM-dd");
- Date l_endDate = toUtilDateFromStrDateByFormat( p_endDate, "yyyy-MM-dd");
- long l_startTime = getMillisOfDate( l_startDate );
- long l_endTime = getMillisOfDate( l_endDate );
- long betweenDays = (long) ( ( l_endTime - l_startTime ) / ( 1000 * 60 * 60 * 24 ) );
- return betweenDays;
- }
-
-
-
-
-
-
-
-
-
- public static long getWeeksOfTowDiffDate( String p_startDate, String p_endDate ) throws ParseException {
- return getDaysOfTowDiffDate(p_startDate,p_endDate)/7;
- }
-
-
-
-
-
-
-
-
-
- public static long getMonthsOfTowDiffDate( String p_startDate, String p_endDate ) throws ParseException {
- return getDaysOfTowDiffDate(p_startDate,p_endDate)/30;
- }
-
-
-
-
-
-
-
-
- public static long getYearsOfTowDiffDate( String p_startDate, String p_endDate ) throws ParseException {
- return getDaysOfTowDiffDate(p_startDate,p_endDate)/365;
- }
-
-
-
-
-
-
-
-
-
-
-
-
- public static String addDate(Date p_startDate,int p_count,int p_field,String p_format)throws ParseException {
-
-
- int l_year = getYearOfDate(p_startDate);
- int l_month = getMonthOfDate( p_startDate )-1;
- int l_day = getDayOfDate( p_startDate );
- int l_hour = getHourOfDate( p_startDate );
- int l_minute = getMinuteOfDate( p_startDate );
- int l_second = getSecondOfDate( p_startDate );
- Calendar l_calendar = new GregorianCalendar(l_year,l_month,l_day,l_hour,l_minute,l_second);
- l_calendar.add(p_field,p_count);
- return toStrDateFromUtilDateByFormat(l_calendar.getTime(),p_format);
- }
-
-
-
-
-
-
-
- public static boolean isLeapYear(Date p_date) {
- int l_year = getYearOfDate( p_date );
- GregorianCalendar l_calendar = new GregorianCalendar();
- return l_calendar.isLeapYear( l_year );
- }
-
- }package com.aimtime.financing.service.util;import java.text.ParseException;
- import java.util.Calendar;
- import java.util.Date;import junit.framework.TestCase;import org.apache.log4j.Logger;public class DateUtilTest extends TestCase {
-
-
-
- private static final Logger logger = Logger.getLogger( DateUtilTest.class );
-
- DateUtil dateUtil;
- protected void setUp() throws Exception {
- logger.debug( "setUp() - start" );
-
- super.setUp();
- dateUtil = new DateUtil();
-
- logger.debug( "setUp() - end" );
- }
-
-
- protected void tearDown() throws Exception {
- logger.debug( "tearDown() - start" );
-
- super.tearDown();
-
- logger.debug( "tearDown() - end" );
- }
-
-
-
-
-
-
-
-
- public void testGetDayOfTowDiffDate() throws ParseException {
- logger.debug( "testGetDayOfTowDiffDate() - start" );
-
- String startDate = "2005-05-01";
- String endDate = "2006-09-30";
- long day = dateUtil.getDaysOfTowDiffDate( startDate,endDate );
- logger.debug( "day=========" + day);
- logger.debug( "week=========" + day/7);
- logger.debug( "month=========" + day/30);
- logger.debug( "year=========" + day/365);
- logger.debug( "testGetDayOfTowDiffDate() - end" );
- }
-
-
-
-
-
-
- public void atestGetDayOfMonth() throws ParseException {
- logger.debug( "testGetDayOfTowDiffDate() - start" );
-
- String l_date = "2006-02-01";
- String l_format = "yyyy-MM-dd";
- long day = dateUtil.getDayOfMonth( dateUtil.toUtilDateFromStrDateByFormat( l_date,l_format ) );
- logger.debug( "day=========" + day);
- logger.debug( "testGetDayOfTowDiffDate() - end" );
- }
-
-
-
-
-
-
-
-
-
-
- public void atestToUtilDateByFormat() throws ParseException {
- logger.debug( "testGetDayOfTowDiffDate() - start" );
-
- String l_date = "2005-05-01";
- Date day = dateUtil.toUtilDateFromStrDateByFormat( l_date,"yyyy-MM-dd" );
- logger.debug( "java.util.Date =========" + day);
-
- logger.debug( "testGetDayOfTowDiffDate() - end" );
- }
-
-
-
-
-
-
-
- public void atestToSqlDatet() throws ParseException {
- logger.debug( "testToSqlDatet() - start" );
-
- String l_date = "2005-05-01";
- Date day = dateUtil.toSqlDateFromStrDate( l_date );
- logger.debug( "java.sql.Date=========" + day);
-
- logger.debug( "testToSqlDatet() - end" );
- }
-
-
-
-
-
-
-
-
-
- public void atestToStrDateByFormat() throws ParseException {
- logger.debug( "testToStrDateByFormat() - start" );
-
- java.util.Date l_date = new java.util.Date();
- String day = dateUtil.toStrDateFromUtilDateByFormat( l_date,"yyyy-MM-dd" );
- String day2 = dateUtil.toStrDateFromUtilDateByFormat( l_date,"yyyy-MM-dd hh:mm:ss EE" );
- logger.debug( "string-Date-yyyy-MM-dd=========" + day);
- logger.debug( "string-Date-yyyy-MM-dd hh:mm:ss=========" + day2);
-
- logger.debug( "testToStrDateByFormat() - end" );
- }
-
-
-
-
-
-
-
- public void atestToSqlDateFromUtilDate() throws ParseException {
- logger.debug( "testToStrDateByFormat() - start" );
-
- java.util.Date l_date = new java.util.Date();
- java.sql.Date day = dateUtil.toSqlDateFromUtilDate( l_date);
- logger.debug( "java.sql.Date-=========" + day);
-
- logger.debug( "testToStrDateByFormat() - end" );
- }
-
-
-
-
-
-
-
- public void atestToUtilDateFromSqlDate() throws ParseException {
- logger.debug( "testToStrDateByFormat() - start" );
-
- java.sql.Date l_date = dateUtil.toSqlDateFromStrDate("2005-05-01");
- java.util.Date date = dateUtil.toUtilDateFromSqlDate( l_date);
- logger.debug( "java.util.Date-=========" + date);
-
- logger.debug( "testToStrDateByFormat() - end" );
- }
-
-
-
-
-
-
-
-
-
-
- public void atestGetNowOfDateByFormat() throws ParseException {
- logger.debug( "testGetNowOfDate() - start" );
-
- String date = dateUtil.getNowOfDateByFormat( "yyyyMM" );
- logger.debug( "java.util.Date-=========" + date);
-
- logger.debug( "testGetNowOfDate() - end" );
- }
-
-
-
-
-
-