Java处理时间的总结(转)

  1/**   
  2* 有关日期工具类(extends TimeUtil)   
  3*    
  4* TimeUtil主要功能有:   
  5* 1.各种日期类型(字符,util.Date,sql.Date,Calendar等)转换   
  6* 2.获取指定日期的年份,月份,日份,小时,分,秒,毫秒   
  7* 3.获取当前/系统日期(指定日期格式)   
  8* 4.获取字符日期一个月的天数   
  9* 5.获取指定月份的第一天,最后一天   
 10*    
 11* DateUtil主要功能有:   
 12* 1.日期比较   
 13* 2.获取2个字符日期的天数差,周数差,月数差,年数差   
 14* 3.日期添加   
 15* 4.判断给定日期是不是润年   
 16*/
package com.aimtime.financing.service.util;    
 17import java.util.Calendar;    
 18import java.util.Date;    
 19import java.util.GregorianCalendar;    
 20import java.text.*;public abstract class TimeUtil {    
 21   
 22//---当前日期的年,月,日,时,分,秒    
 23public static Calendar now   = Calendar.getInstance();    
 24int    year = now.get( Calendar.YEAR );    
 25int    date = now.get( Calendar.DAY_OF_MONTH );    
 26int    month = now.get( Calendar.MONTH ) + 1;    
 27int    hour = now.get( Calendar.HOUR );    
 28int    min   = now.get( Calendar.MINUTE );    
 29int    sec   = now.get( Calendar.SECOND );    
 30   
 31//-------------------------------日期类型转换---------------------------------------------------------------------------    
 32/**   
 33* 字符型日期转化util.Date型日期   
 34* @Param:p_strDate 字符型日期    
 35@param p_format 格式:"yyyy-MM-dd" / "yyyy-MM-dd hh:mm:ss"   
 36* @Return:java.util.Date util.Date型日期   
 37* @Throws: ParseException   
 38* @Author: zhuqx   
 39* @Date:   2006-10-31   
 40*/
   
 41public static java.util.Date toUtilDateFromStrDateByFormat( String p_strDate, String p_format )    
 42    throws ParseException {    
 43   java.util.Date l_date = null;    
 44   java.text.DateFormat df = new java.text.SimpleDateFormat( p_format );    
 45   if ( p_strDate != null && ( !"".equals( p_strDate ) ) && p_format != null && ( !"".equals( p_format ) ) ) {    
 46    l_date = df.parse( p_strDate );    
 47   }
    
 48   return l_date;    
 49}
    
 50   
 51/**   
 52* 字符型日期转化成sql.Date型日期   
 53@param p_strDate    字符型日期   
 54@return java.sql.Date sql.Date型日期   
 55@throws ParseException    
 56* @Author: zhuqx   
 57* @Date:   2006-10-31   
 58*/
   
 59public static java.sql.Date toSqlDateFromStrDate( String p_strDate ) throws ParseException {    
 60   java.sql.Date returnDate = null;    
 61   java.text.DateFormat sdf = new java.text.SimpleDateFormat();    
 62   if ( p_strDate != null && ( !"".equals( p_strDate ) ) ) {    
 63    returnDate = new java.sql.Date( sdf.parse( p_strDate ).getTime() );    
 64   }
    
 65   return returnDate;    
 66}
    
 67      
 68/**    
 69* util.Date型日期转化指定格式的字符串型日期   
 70@param   p_date    Date    
 71@param   p_format String    
 72* 格式1:"yyyy-MM-dd"    
 73* 格式2:"yyyy-MM-dd hh:mm:ss EE"    
 74* 格式3:"yyyy年MM月dd日 hh:mm:ss EE"    
 75* 说明: 年-月-日 时:分:秒 星期 注意MM/mm大小写   
 76@return String    
 77* @Author: zhuqx   
 78* @Date:   2006-10-31   
 79*/
   
 80public static String toStrDateFromUtilDateByFormat( java.util.Date p_utilDate, String p_format ) throws ParseException {    
 81   String l_result = "";    
 82   if ( p_utilDate != null ) {    
 83    SimpleDateFormat sdf = new SimpleDateFormat( p_format );    
 84    l_result = sdf.format( p_utilDate );    
 85   }
    
 86   return l_result;    
 87}
    
 88   
 89/**   
 90* util.Date型日期转化转化成Calendar日期   
 91@param p_utilDate Date   
 92@return Calendar   
 93* @Author: zhuqx   
 94* @Date: 2006-10-31   
 95*/
   
 96public static Calendar toCalendarFromUtilDate(java.util.Date p_utilDate) {    
 97   Calendar c = Calendar.getInstance();    
 98   c.setTime(p_utilDate);    
 99   return c;    
100}
    
101   
102/**   
103* util.Date型日期转化sql.Date(年月日)型日期   
104* @Param: p_utilDate util.Date型日期   
105* @Return: java.sql.Date sql.Date型日期   
106* @Author: zhuqx   
107* @Date:   2006-10-31   
108*/
   
109public static java.sql.Date toSqlDateFromUtilDate( java.util.Date p_utilDate ) {    
110   java.sql.Date returnDate = null;    
111   if ( p_utilDate != null ) {    
112    returnDate = new java.sql.Date( p_utilDate.getTime() );    
113   }
    
114   return returnDate;    
115}
    
116   
117/**   
118* util.Date型日期转化sql.Time(时分秒)型日期   
119* @Param: p_utilDate util.Date型日期   
120* @Return: java.sql.Time sql.Time型日期   
121* @Author: zhuqx   
122* @Date:   2006-10-31   
123*/
   
124public static java.sql.Time toSqlTimeFromUtilDate( java.util.Date p_utilDate ) {    
125   java.sql.Time returnDate = null;    
126   if ( p_utilDate != null ) {    
127    returnDate = new java.sql.Time( p_utilDate.getTime() );    
128   }
    
129   return returnDate;    
130}
    
131   
132/**   
133* util.Date型日期转化sql.Date(时分秒)型日期   
134* @Param: p_utilDate util.Date型日期   
135* @Return: java.sql.Timestamp sql.Timestamp型日期   
136* @Author: zhuqx   
137* @Date:   2006-10-31   
138*/
   
139public static java.sql.Timestamp toSqlTimestampFromUtilDate( java.util.Date p_utilDate ) {    
140   java.sql.Timestamp returnDate = null;    
141   if ( p_utilDate != null ) {    
142    returnDate = new java.sql.Timestamp( p_utilDate.getTime() );    
143   }
    
144   return returnDate;    
145}
    
146   
147/**   
148* sql.Date型日期转化util.Date型日期   
149* @Param: sqlDate sql.Date型日期   
150* @Return: java.util.Date util.Date型日期   
151* @Author: zhuqx   
152* @Date:   2006-10-31   
153*/
   
154public static java.util.Date toUtilDateFromSqlDate( java.sql.Date p_sqlDate ) {    
155   java.util.Date returnDate = null;    
156   if ( p_sqlDate != null ) {    
157    returnDate = new java.util.Date( p_sqlDate.getTime() );    
158   }
    
159   return returnDate;    
160}
    
161   
162//-----------------获取指定日期的年份,月份,日份,小时,分,秒,毫秒----------------------------    
163/**    
164* 获取指定日期的年份    
165@param p_date util.Date日期    
166@return int   年份    
167@author zhuqx   
168* @Date:   2006-10-31   
169*/
   
170public static int getYearOfDate( java.util.Date p_date ) {    
171   java.util.Calendar c = java.util.Calendar.getInstance();    
172   c.setTime( p_date );    
173   return c.get( java.util.Calendar.YEAR );    
174}
    
175      
176/**    
177* 获取指定日期的月份    
178@param p_date util.Date日期    
179@return int   月份    
180@author zhuqx   
181* @Date:   2006-10-31   
182*/
   
183public static int getMonthOfDate( java.util.Date p_date ) {    
184   java.util.Calendar c = java.util.Calendar.getInstance();    
185   c.setTime( p_date );    
186   return c.get( java.util.Calendar.MONTH ) + 1;    
187}
    
188   
189/**    
190* 获取指定日期的日份    
191@param p_date util.Date日期    
192@return int   日份    
193@author zhuqx   
194* @Date:   2006-10-31   
195*/
   
196public static int getDayOfDate( java.util.Date p_date ) {    
197   java.util.Calendar c = java.util.Calendar.getInstance();    
198   c.setTime( p_date );    
199   return c.get( java.util.Calendar.DAY_OF_MONTH );    
200}
    
201   
202/**    
203* 获取指定日期的小时    
204@param p_date util.Date日期    
205@return int   日份    
206@author zhuqx   
207* @Date:   2006-10-31   
208*/
   
209public static int getHourOfDate( java.util.Date p_date ) {    
210   java.util.Calendar c = java.util.Calendar.getInstance();    
211   c.setTime( p_date );    
212   return c.get( java.util.Calendar.HOUR_OF_DAY );    
213}
    
214      
215/**    
216* 获取指定日期的分钟    
217@param p_date util.Date日期    
218@return int   分钟    
219@author zhuqx   
220* @Date:   2006-10-31   
221*/
   
222public static int getMinuteOfDate( java.util.Date p_date ) {    
223   java.util.Calendar c = java.util.Calendar.getInstance();    
224   c.setTime( p_date );    
225   return c.get( java.util.Calendar.MINUTE );    
226}
    
227      
228/**    
229* 获取指定日期的秒钟    
230@param p_date util.Date日期    
231@return int   秒钟    
232@author zhuqx   
233* @Date:   2006-10-31   
234*/
   
235public static int getSecondOfDate( java.util.Date p_date ) {    
236   java.util.Calendar c = java.util.Calendar.getInstance();    
237   c.setTime( p_date );    
238   return c.get( java.util.Calendar.SECOND );    
239}
    
240      
241/**    
242* 获取指定日期的毫秒      
243@param p_date util.Date日期    
244@return long   毫秒      
245@author zhuqx   
246* @Date:   2006-10-31   
247*/
   
248public static long getMillisOfDate( java.util.Date p_date ) {    
249   java.util.Calendar c = java.util.Calendar.getInstance();    
250   c.setTime( p_date );    
251   return c.getTimeInMillis();    
252}
    
253   
254//-----------------获取当前/系统日期(指定日期格式)-----------------------------------------------------------------------------------    
255/**   
256* 获取指定日期格式当前日期的字符型日期   
257@param p_format 日期格式   
258* 格式1:"yyyy-MM-dd"    
259* 格式2:"yyyy-MM-dd hh:mm:ss EE"    
260* 格式3:"yyyy年MM月dd日 hh:mm:ss EE"    
261* 说明: 年-月-日 时:分:秒 星期 注意MM/mm大小写   
262@return String 当前时间字符串   
263@author zhuqx   
264* @Date:   2006-10-31   
265*/
   
266public static String getNowOfDateByFormat( String p_format ) {    
267   Date d = new Date();    
268   SimpleDateFormat sdf = new SimpleDateFormat( p_format );    
269   String dateStr = sdf.format( d );    
270   return dateStr;    
271}
    
272   
273/**   
274* 获取指定日期格式系统日期的字符型日期   
275@param p_format 日期格式   
276* 格式1:"yyyy-MM-dd"    
277* 格式2:"yyyy-MM-dd hh:mm:ss EE"    
278* 格式3:"yyyy年MM月dd日 hh:mm:ss EE"    
279* 说明: 年-月-日 时:分:秒 星期 注意MM/mm大小写   
280@return String 系统时间字符串   
281@author zhuqx   
282* @Date:   2006-10-31   
283*/
   
284public static String getSystemOfDateByFormat( String p_format ) {    
285   long time = System.currentTimeMillis();    
286   Date d2 = new Date();    
287   Date d = new Date( time );    
288   SimpleDateFormat sdf = new SimpleDateFormat( p_format );    
289   String dateStr = sdf.format( d );    
290   return dateStr;    
291}
    
292   
293/**   
294* 获取字符日期一个月的天数   
295@param p_date   
296@return 天数   
297@author zhuqx   
298*/
   
299public static long getDayOfMonth( Date p_date ) throws ParseException {    
300   int year = getYearOfDate(p_date);    
301   int month = getMonthOfDate( p_date )-1;    
302   int day = getDayOfDate( p_date );    
303   int hour = getHourOfDate( p_date );    
304   int minute = getMinuteOfDate( p_date );    
305   int second = getSecondOfDate( p_date );    
306   Calendar l_calendar = new GregorianCalendar(year,month,day,hour,minute,second);    
307   return l_calendar.getActualMaximum( l_calendar.DAY_OF_MONTH );    
308}
    
309   
310// -----------------获取指定月份的第一天,最后一天 ---------------------------------------------------------------------------    
311/**    
312* 获取指定月份的第一天    
313@param p_strDate 指定月份   
314@param p_formate 日期格式   
315@return String 时间字符串   
316@author zhuqx   
317* @Date:   2006-10-31   
318*/
   
319public static String getDateOfMonthBegin( String p_strDate, String p_format ) throws ParseException {    
320   java.util.Date date = toUtilDateFromStrDateByFormat( p_strDate,p_format );    
321   return toStrDateFromUtilDateByFormat( date,"yyyy-MM" ) + "-01";    
322}
    
323      
324/**    
325* 获取指定月份的最后一天    
326@param p_strDate 指定月份   
327@param p_formate 日期格式   
328@return String 时间字符串   
329@author zhuqx   
330* @Date:   2006-10-31   
331*/
   
332public static String getDateOfMonthEnd( String p_strDate, String p_format ) throws ParseException {    
333   java.util.Date date = toUtilDateFromStrDateByFormat( getDateOfMonthBegin( p_strDate,p_format ),p_format );    
334   Calendar calendar = Calendar.getInstance();    
335   calendar.setTime( date );    
336   calendar.add( Calendar.MONTH,1 );    
337   calendar.add( Calendar.DAY_OF_YEAR,-1 );    
338   return toStrDateFromUtilDateByFormat( calendar.getTime(),p_format );    
339}
    
340   
341}
package com.aimtime.financing.service.util;import java.text.ParseException;    
342import java.text.SimpleDateFormat;    
343import java.util.Calendar;    
344import java.util.Date;    
345import java.util.GregorianCalendar;import org.apache.log4j.Logger;/**   
346* @Functionality: 有关日期工具类   
347*/
   
348public class DateUtil extends TimeUtil {    
349/**   
350* Logger for this class   
351*/
   
352private static final Logger     logger = Logger.getLogger( DateUtil.class );    
353   
354/** 日期转化 */   
355private static final SimpleDateFormat sdf   = new SimpleDateFormat( "yyyy-MM-dd" );    
356   
357/**   
358* @Functionality: 构造函数   
359*/
   
360public DateUtil() {}    
361      
362//----------------------日期计算---------------------------------------------------------------------------------    
363   
364/**   
365* 是否开始日期在结束日期之前(不包括相等)   
366@param p_startDate   
367@param p_endDate   
368@return boolean 在结束日期前:ture;否则:false   
369@author zhuqx   
370* @Date:   2006-10-31   
371*/
   
372public static boolean isStartDateBeforeEndDate( Date p_startDate, Date p_endDate ) throws ParseException {    
373   long l_startTime = getMillisOfDate( p_startDate );    
374   long l_endTime = getMillisOfDate( p_endDate );    
375   return ( l_startTime - l_endTime > (long0 ) ? true : false;    
376}
    
377   
378/**   
379* 获取2个字符日期的天数差   
380@param p_startDate   
381@param p_endDate   
382@return 天数差   
383@author zhuqx   
384* @Date:   2006-10-31   
385*/
   
386public static long getDaysOfTowDiffDate( String p_startDate, String p_endDate ) throws ParseException {    
387      
388   Date l_startDate = toUtilDateFromStrDateByFormat( p_startDate,"yyyy-MM-dd");    
389   Date l_endDate = toUtilDateFromStrDateByFormat( p_endDate, "yyyy-MM-dd");    
390   long l_startTime = getMillisOfDate( l_startDate );    
391   long l_endTime = getMillisOfDate( l_endDate );    
392   long betweenDays = (long) ( ( l_endTime - l_startTime ) / ( 1000 * 60 * 60 * 24 ) );    
393   return betweenDays;    
394}
    
395   
396/**   
397* 获取2个字符日期的周数差   
398@param p_startDate   
399@param p_endDate   
400@return 周数差   
401@author zhuqx   
402* @Date:   2006-10-31   
403*/
   
404public static long getWeeksOfTowDiffDate( String p_startDate, String p_endDate ) throws ParseException {    
405   return getDaysOfTowDiffDate(p_startDate,p_endDate)/7;    
406}
    
407   
408/**   
409* 获取2个字符日期的月数差   
410@param p_startDate   
411@param p_endDate   
412@return 月数差   
413@author zhuqx   
414* @Date:   2006-10-31   
415*/
   
416public static long getMonthsOfTowDiffDate( String p_startDate, String p_endDate ) throws ParseException {    
417   return getDaysOfTowDiffDate(p_startDate,p_endDate)/30;    
418}
    
419/**   
420* 获取2个字符日期的年数差   
421@param p_startDate   
422@param p_endDate   
423@return 年数差   
424@author zhuqx   
425* @Date:   2006-10-31   
426*/
   
427public static long getYearsOfTowDiffDate( String p_startDate, String p_endDate ) throws ParseException {    
428   return getDaysOfTowDiffDate(p_startDate,p_endDate)/365;    
429}
    
430   
431/**   
432* 在给定的日期基础上添加年,月,日、时,分,秒   
433* 例如要再2006-10-21(uitl日期)添加3个月,并且格式化为yyyy-MM-dd格式,   
434* 这里调用的方式为 addDate(2006-10-21,3,Calendar.MONTH,"yyyy-MM-dd")   
435@param p_startDate 给定的日期   
436@param p_count 时间的数量   
437@param p_field 添加的域   
438@param p_format 时间转化格式,例如:yyyy-MM-dd hh:mm:ss 或者yyyy-mm-dd等   
439@return 添加后格式化的时间   
440* @Date:   2006-10-31   
441*/
   
442public static String addDate(Date p_startDate,int p_count,int p_field,String p_format)throws ParseException {    
443      
444   //年,月,日、时,分,秒    
445   int l_year = getYearOfDate(p_startDate);    
446   int l_month = getMonthOfDate( p_startDate )-1;    
447   int l_day = getDayOfDate( p_startDate );    
448   int l_hour = getHourOfDate( p_startDate );    
449   int l_minute = getMinuteOfDate( p_startDate );    
450   int l_second = getSecondOfDate( p_startDate );    
451   Calendar l_calendar = new GregorianCalendar(l_year,l_month,l_day,l_hour,l_minute,l_second);    
452   l_calendar.add(p_field,p_count);    
453   return toStrDateFromUtilDateByFormat(l_calendar.getTime(),p_format);    
454}
    
455   
456/**   
457* 判断给定日期是不是润年   
458@param p_date 给定日期    
459@return boolean 如果给定的年份为闰年,则返回 true;否则返回 false。   
460* @Date: 2006-10-31   
461*/
   
462   public static boolean isLeapYear(Date p_date) {    
463     int l_year = getYearOfDate( p_date );    
464     GregorianCalendar l_calendar = new GregorianCalendar();    
465     return l_calendar.isLeapYear( l_year );    
466   }
    
467       
468}
package com.aimtime.financing.service.util;import java.text.ParseException;    
469import java.util.Calendar;    
470import java.util.Date;import junit.framework.TestCase;import org.apache.log4j.Logger;public class DateUtilTest extends TestCase {    
471/**   
472* Logger for this class   
473*/
   
474private static final Logger logger = Logger.getLogger( DateUtilTest.class );    
475   
476DateUtil dateUtil;    
477protected void setUp() throws Exception {    
478   logger.debug( "setUp() - start" );    
479      
480   super.setUp();    
481   dateUtil = new DateUtil();    
482      
483   logger.debug( "setUp() - end" );    
484}
    
485   
486protected void tearDown() throws Exception {    
487   logger.debug( "tearDown() - start" );    
488      
489   super.tearDown();    
490      
491   logger.debug( "tearDown() - end" );    
492}
    
493   
494/**   
495* 获取2个字符日期的天数差   
496@param p_startDate   
497@param p_endDate   
498@return 天数差   
499@author zhuqx   
500*/
   
501public void testGetDayOfTowDiffDate() throws ParseException {    
502   logger.debug( "testGetDayOfTowDiffDate() - start" );    
503      
504   String startDate = "2005-05-01";    
505   String endDate = "2006-09-30";    
506   long day = dateUtil.getDaysOfTowDiffDate( startDate,endDate );    
507   logger.debug( "day=========" + day);    
508   logger.debug( "week=========" + day/7);    
509   logger.debug( "month=========" + day/30);    
510   logger.debug( "year=========" + day/365);    
511   logger.debug( "testGetDayOfTowDiffDate() - end" );    
512}
    
513/**   
514* 获取字符日期一个月的天数   
515@param p_date   
516@return 天数   
517@author zhuqx   
518*/
   
519public void atestGetDayOfMonth() throws ParseException {    
520   logger.debug( "testGetDayOfTowDiffDate() - start" );    
521      
522   String l_date = "2006-02-01";    
523   String l_format = "yyyy-MM-dd";    
524   long day = dateUtil.getDayOfMonth( dateUtil.toUtilDateFromStrDateByFormat( l_date,l_format ) );    
525   logger.debug( "day=========" + day);    
526   logger.debug( "testGetDayOfTowDiffDate() - end" );    
527}
    
528   
529//-------------------------------日期转换---------------------------------------------------------------------------    
530/**   
531* 字符串型转化util.Date   
532* @Param: p_strDate 字符串型日期   
533* @Return: java.util.Date util.Date   
534* @Throws: ParseException   
535* @Author: zhuqx   
536* @Date:   2006-10-31   
537*/
   
538public void atestToUtilDateByFormat() throws ParseException {    
539   logger.debug( "testGetDayOfTowDiffDate() - start" );    
540      
541   String l_date = "2005-05-01";    
542   Date day = dateUtil.toUtilDateFromStrDateByFormat( l_date,"yyyy-MM-dd" );    
543   logger.debug( "java.util.Date =========" + day);    
544      
545   logger.debug( "testGetDayOfTowDiffDate() - end" );    
546}
    
547/**   
548* 字符型日期转化成sql.Date型日期   
549@param p_strDate    字符型日期   
550@return java.sql.Date sql.Date型日期   
551@throws ParseException    
552@author shizhuoyang   
553*/
   
554public void atestToSqlDatet() throws ParseException {    
555   logger.debug( "testToSqlDatet() - start" );    
556      
557   String l_date = "2005-05-01";    
558   Date day = dateUtil.toSqlDateFromStrDate( l_date );    
559   logger.debug( "java.sql.Date=========" + day);    
560      
561   logger.debug( "testToSqlDatet() - end" );    
562}
    
563/**    
564* util.Date型日期转化指定的格式字符串型   
565@param   p_date    Date    
566@param   p_format String    
567*    格式:"yyyy-MM-dd" / "yyyy-MM-dd hh:mm:ss EE" 年-月-日 时:分:秒 星期 注意MM/mm大小写   
568@return String    
569* @Author: zhuqx   
570* @Date:   2006-10-31   
571*/
     
572public void atestToStrDateByFormat() throws ParseException {    
573   logger.debug( "testToStrDateByFormat() - start" );    
574      
575   java.util.Date l_date = new java.util.Date();    
576   String day = dateUtil.toStrDateFromUtilDateByFormat( l_date,"yyyy-MM-dd" );    
577   String day2 = dateUtil.toStrDateFromUtilDateByFormat( l_date,"yyyy-MM-dd hh:mm:ss EE" );    
578   logger.debug( "string-Date-yyyy-MM-dd=========" + day);    
579   logger.debug( "string-Date-yyyy-MM-dd hh:mm:ss=========" + day2);    
580      
581   logger.debug( "testToStrDateByFormat() - end" );    
582}
    
583/**   
584* util.Date型日期转化sql.Date型日期   
585* @Param: p_utilDate util.Date型日期   
586* @Return: java.sql.Date sql.Date型日期   
587* @Author: zhuqx   
588* @Date:   2006-10-31   
589*/
   
590public void atestToSqlDateFromUtilDate() throws ParseException {    
591   logger.debug( "testToStrDateByFormat() - start" );    
592      
593   java.util.Date l_date = new java.util.Date();    
594   java.sql.Date day = dateUtil.toSqlDateFromUtilDate( l_date);    
595   logger.debug( "java.sql.Date-=========" + day);    
596      
597   logger.debug( "testToStrDateByFormat() - end" );    
598}
    
599/**   
600* sql.Date型日期转化util.Date型日期   
601* @Param: sqlDate sql.Date型日期   
602* @Return: java.util.Date util.Date型日期   
603* @Author: zhuqx   
604* @Date:   2006-10-31   
605*/
   
606public void atestToUtilDateFromSqlDate() throws ParseException {    
607   logger.debug( "testToStrDateByFormat() - start" );    
608      
609   java.sql.Date l_date = dateUtil.toSqlDateFromStrDate("2005-05-01");    
610   java.util.Date date = dateUtil.toUtilDateFromSqlDate( l_date);    
611   logger.debug( "java.util.Date-=========" + date);    
612      
613   logger.debug( "testToStrDateByFormat() - end" );    
614}
    
615   
616//-----------------获取日期(各种日期格式)-----------------------------------------------------------------------------------    
617/**   
618* 获取当前日期的字符化处理    
619@param p_format 日期格式   
620@return String 当前时间字符串   
621@author zhuqx   
622* @Date:   2006-10-31   
623*/
   
624public void atestGetNowOfDateByFormat() throws ParseException {    
625   logger.debug( "testGetNowOfDate() - start" );    
626   //yyyy年MM月dd日 hh:mm:ss EE    
627   String date = dateUtil.getNowOfDateByFormat( "yyyyMM" );    
628   logger.debug( "java.util.Date-=========" + date);    
629      
630   logger.debug( "testGetNowOfDate() - end" );    
631}
    
632   
633/**   
634* 获取指定日期格式系统日期的字符型日期   
635@param p_format 日期格式   
636* 格式1:"yyyy-MM-dd"    
637* 格式2:"yyyy-MM-dd hh:mm:ss EE"    
638* 格式3:"yyyy年MM月dd日 hh:mm:ss EE"    
639* 说明: 年-月-日 时:分:秒 星期 注意MM/mm大小写   
640@return String 系统时间字符串   
641@author zhuqx   
642* @Date:   2006-10-31   
643*/
   
644public void atestGetSystemOfDateByFormat() throws ParseException {    
645   logger.debug( "testGetSystemOfDateByFormat() - start" );    
646   //yyyy年MM月dd日 hh:mm:ss EE    
647   String date = dateUtil.getSystemOfDateByFormat( "yyyyMM" );    
648   logger.debug( "java.util.Date-=========" + date);    
649      
650   logger.debug( "testGetSystemOfDateByFormat() - end" );    
651}
    
652   
653/**    
654* 获取指定月份的第一天    
655@param p_strdate 指定月份   
656@param p_formate 日期格式   
657@return String 时间字符串   
658@author zhuqx   
659* @Date:   2006-10-31   
660*/
     
661public void atestGetMonthBegin() throws ParseException {    
662   logger.debug( "testGetMonthBegin() - start" );    
663   //yyyy年MM月dd日 hh:mm:ss EE    
664   String l_strDate = "2005-09-11";    
665   String l_formate = "yyyy-MM-dd";    
666   String date = dateUtil.getDateOfMonthBegin( l_strDate,l_formate );    
667   logger.debug( "java.util.Date-=========" + date);    
668      
669   logger.debug( "testGetMonthBegin() - end" );    
670}
    
671   
672/**    
673* 取得指定月份的最后一天    
674@param p_strDate 指定月份   
675@param p_formate 日期格式   
676@return String 时间字符串   
677@author zhuqx   
678* @Date:   2006-10-31   
679*/
     
680public void atestGetMonthEnd() throws ParseException {    
681   logger.debug( "testGetMonthBegin() - start" );    
682   //yyyy年MM月dd日 hh:mm:ss EE    
683   String l_strDate = "2006-02-11";    
684   String l_formate = "yyyy-MM-dd";    
685   String date = dateUtil.getDateOfMonthEnd( l_strDate,l_formate );    
686   logger.debug( "java.util.Date-=========" + date);    
687      
688   logger.debug( "testGetMonthBegin() - end" );    
689}
    
690   
691/**    
692* 获取指定日期的年份,月份,日份,小时,分,秒,毫秒   
693@param p_date util.Date日期    
694@return int   年份    
695@author zhuqx   
696* @Date:   2006-10-31   
697*/
     
698public void atestGetYearOfDate() throws ParseException {    
699   logger.debug( "testGetMonthBegin() - start" );    
700   //yyyy年MM月dd日 hh:mm:ss EE    
701   String l_strDate = "2004-02-11 08:25:15";    
702   String l_format = "yyyy-MM-dd hh:mm:ss";    
703   int year = dateUtil.getYearOfDate( dateUtil.toUtilDateFromStrDateByFormat( l_strDate,l_format ));    
704   int month = dateUtil.getMonthOfDate( dateUtil.toUtilDateFromStrDateByFormat( l_strDate,l_format ));    
705   int day = dateUtil.getDayOfDate( dateUtil.toUtilDateFromStrDateByFormat( l_strDate,l_format ));    
706   int hour = dateUtil.getHourOfDate( dateUtil.toUtilDateFromStrDateByFormat( l_strDate,l_format ));    
707   int minute = dateUtil.getMinuteOfDate( dateUtil.toUtilDateFromStrDateByFormat( l_strDate,l_format ));    
708   int second = dateUtil.getSecondOfDate( dateUtil.toUtilDateFromStrDateByFormat( l_strDate,l_format ));    
709   long millis = dateUtil.getMillisOfDate( dateUtil.toUtilDateFromStrDateByFormat( l_strDate,l_format ));    
710      
711   logger.debug( "year==========" + year);    
712   logger.debug( "month==========" + month);    
713   logger.debug( "day==========" + day);    
714   logger.debug( "hour==========" + hour);    
715   logger.debug( "minute==========" + minute);    
716   logger.debug( "second==========" + second);    
717   logger.debug( "millis==========" + millis);    
718      
719   logger.debug( "testGetMonthBegin() - end" );    
720}
    
721   
722/**   
723* 是否开始日期在结束日期之前   
724@param p_startDate   
725@param p_endDate   
726@return boolean 在结束日期前:ture;否则:false   
727@author zhuqx   
728*/
   
729public void atestIsStartDateBeforeEndDate() throws ParseException {    
730   Date l_startDate = dateUtil.toUtilDateFromStrDateByFormat( "2005-02-11","yyyy-MM-dd" );    
731   Date l_endDate = dateUtil.toUtilDateFromStrDateByFormat( "2005-02-11","yyyy-MM-dd" );    
732   boolean isBofore = dateUtil.isStartDateBeforeEndDate(l_startDate,l_endDate );    
733   logger.debug( "isBofore=="+ isBofore);    
734}
    
735   
736/**   
737* 在当前的时间基础上添加月、天、或者其他   
738* 例如添加3个月,并且格式化为yyyy-MM-dd格式,   
739* 这里调用的方式为addMonth(3,Calendar.MONTH,"yyyy-MM-dd")   
740@param p_count 时间的数量   
741@param p_field 添加的域   
742@param p_format 时间转化格式,例如:yyyy-MM-dd hh:mm:ss 或者yyyy-mm-dd等   
743@return 添加后格式化的时间   
744* @Date:   2006-10-31   
745*/
   
746public void atestAddDate() throws ParseException {    
747   Date l_startDate = dateUtil.toUtilDateFromStrDateByFormat( "2006-02-27 07:59:59","yyyy-MM-dd hh:mm:ss" );    
748   int l_count = 2;    
749//   int l_field = Calendar.YEAR;    
750//   int l_field = Calendar.MONTH;    
751   int l_field = Calendar.DATE;    
752//   int l_field = Calendar.HOUR;    
753//   int l_field = Calendar.MINUTE;    
754//   int l_field = Calendar.SECOND;    
755   String l_format = "yyyy-MM-dd hh:mm:ss";    
756   String date = this.dateUtil.addDate( l_startDate,l_count,l_field,l_format );    
757   logger.debug( "addDate============"+date );    
758}
    
759   
760/**   
761* 判断给定日期是不是润年   
762@param p_date 给定日期    
763@return boolean 如果给定的年份为闰年,则返回 true;否则返回 false。   
764* @Date: 2006-10-31   
765*/
   
766public void atestIsLeapYear() throws ParseException {    
767      
768   Date l_date = dateUtil.toUtilDateFromStrDateByFormat( "2000-01-25","yyyy-MM-dd" );    
769   boolean isLeap = dateUtil.isLeapYear( l_date );    
770   logger.debug( "isLeapYear="+ isLeap );    
771}
    
772   
773}

posted on 2008-06-18 15:05 球球 阅读(595) 评论(0)  编辑  收藏 所属分类: Java


只有注册用户登录后才能发表评论。


网站导航:
 
<2024年4月>
31123456
78910111213
14151617181920
21222324252627
2829301234
567891011

导航

统计

留言簿(1)

文章分类(19)

文章档案(19)

积分与排名

最新随笔

最新评论