Java处理时间的总结(转)

本文介绍了一个实用的日期工具类,提供了日期格式转换、日期计算、日期添加等功能。支持多种日期类型的相互转换,如字符型日期到util.Date、sql.Date,反之亦然。同时,还能够进行日期比较、获取两个日期之间的天数差、周数差、月数差、年数差,以及判断闰年。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

 

/**   
  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 > (long) 0 ) ? 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}
唐山 IT 技术 http://www.tsp2c.cn/
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值