`
laozhou
  • 浏览: 37621 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类
最新评论

有关日期工具类

阅读更多
/*
有关日期工具类(extends TimeUtil)

TimeUtil主要功能有:
1.各种日期类型(字符,util.Date,sql.Date,Calendar等)转换
2.获取指定日期的年份,月份,日份,小时,分,秒,毫秒
3.获取当前/系统日期(指定日期格式)
4.获取字符日期一个月的天数
5.获取指定月份的第一天,最后一天

DateUtil主要功能有:
1.日期比较
2.获取2个字符日期的天数差,周数差,月数差,年数差
3.日期添加
4.判断给定日期是不是润年
/
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 );

//-------------------------------日期类型转换---------------------------------------------------------------------------
/
字符型日期转化util.Date型日期
@Param:p_strDate 字符型日期
@param p_format 格式:"yyyy-MM-dd" / "yyyy-MM-dd hh:mm:ss"
@Return:java.util.Date util.Date型日期
@Throws: ParseException
@Author: zhuqx
@Date:   2006-10-31
/
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;
}



/
字符型日期转化成sql.Date型日期
@param p_strDate    字符型日期
@return java.sql.Date sql.Date型日期
@throws ParseException
@Author: zhuqx
@Date:   2006-10-31
/
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;
}

/
util.Date型日期转化指定格式的字符串型日期
@param   p_date    Date
@param   p_format String
格式1:"yyyy-MM-dd"
格式2:"yyyy-MM-dd hh:mm:ss EE"
格式3:"yyyy年MM月dd日 hh:mm:ss EE"
说明: 年-月-日 时:分:秒 星期 注意MM/mm大小写
@return String
@Author: zhuqx
@Date:   2006-10-31
/
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;
}

/
util.Date型日期转化转化成Calendar日期
@param p_utilDate Date
@return Calendar
@Author: zhuqx
@Date: 2006-10-31
/
public static Calendar toCalendarFromUtilDate(java.util.Date p_utilDate) {
   Calendar c = Calendar.getInstance();
   c.setTime(p_utilDate);
   return c;
}

/
util.Date型日期转化sql.Date(年月日)型日期
@Param: p_utilDate util.Date型日期
@Return: java.sql.Date sql.Date型日期
@Author: zhuqx
@Date:   2006-10-31
/
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;
}

/
util.Date型日期转化sql.Time(时分秒)型日期
@Param: p_utilDate util.Date型日期
@Return: java.sql.Time sql.Time型日期
@Author: zhuqx
@Date:   2006-10-31
/
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;
}

/
util.Date型日期转化sql.Date(时分秒)型日期
@Param: p_utilDate util.Date型日期
@Return: java.sql.Timestamp sql.Timestamp型日期
@Author: zhuqx
@Date:   2006-10-31
/
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;
}

/
sql.Date型日期转化util.Date型日期
@Param: sqlDate sql.Date型日期
@Return: java.util.Date util.Date型日期
@Author: zhuqx
@Date:   2006-10-31
/
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;
}

//-----------------获取指定日期的年份,月份,日份,小时,分,秒,毫秒----------------------------
/
获取指定日期的年份
@param p_date util.Date日期
@return int   年份
@author zhuqx
@Date:   2006-10-31
/
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 );
}

/
获取指定日期的月份
@param p_date util.Date日期
@return int   月份
@author zhuqx
@Date:   2006-10-31
/
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;
}

/
获取指定日期的日份
@param p_date util.Date日期
@return int   日份
@author zhuqx
@Date:   2006-10-31
/
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 );
}

/
获取指定日期的小时
@param p_date util.Date日期
@return int   日份
@author zhuqx
@Date:   2006-10-31
/
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 );
}

/
获取指定日期的分钟
@param p_date util.Date日期
@return int   分钟
@author zhuqx
@Date:   2006-10-31
/
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 );
}

/
获取指定日期的秒钟
@param p_date util.Date日期
@return int   秒钟
@author zhuqx
@Date:   2006-10-31
/
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 );
}

/
获取指定日期的毫秒 
@param p_date util.Date日期
@return long   毫秒 
@author zhuqx
@Date:   2006-10-31
/
public static long getMillisOfDate( java.util.Date p_date ) {
   java.util.Calendar c = java.util.Calendar.getInstance();
   c.setTime( p_date );
   return c.getTimeInMillis();
}

//-----------------获取当前/系统日期(指定日期格式)-----------------------------------------------------------------------------------
/
获取指定日期格式当前日期的字符型日期
@param p_format 日期格式
格式1:"yyyy-MM-dd"
格式2:"yyyy-MM-dd hh:mm:ss EE"
格式3:"yyyy年MM月dd日 hh:mm:ss EE"
说明: 年-月-日 时:分:秒 星期 注意MM/mm大小写
@return String 当前时间字符串
@author zhuqx
@Date:   2006-10-31
/
public static String getNowOfDateByFormat( String p_format ) {
   Date d = new Date();
   SimpleDateFormat sdf = new SimpleDateFormat( p_format );
   String dateStr = sdf.format( d );
   return dateStr;
}

/
获取指定日期格式系统日期的字符型日期
@param p_format 日期格式
格式1:"yyyy-MM-dd"
格式2:"yyyy-MM-dd hh:mm:ss EE"
格式3:"yyyy年MM月dd日 hh:mm:ss EE"
说明: 年-月-日 时:分:秒 星期 注意MM/mm大小写
@return String 系统时间字符串
@author zhuqx
@Date:   2006-10-31
/
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;
}

/
获取字符日期一个月的天数
@param p_date
@return 天数
@author zhuqx
/
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 );
}

// -----------------获取指定月份的第一天,最后一天 ---------------------------------------------------------------------------
/
获取指定月份的第一天
@param p_strDate 指定月份
@param p_formate 日期格式
@return String 时间字符串
@author zhuqx
@Date:   2006-10-31
/
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";
}

/
获取指定月份的最后一天
@param p_strDate 指定月份
@param p_formate 日期格式
@return String 时间字符串
@author zhuqx
@Date:   2006-10-31
/
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;
/
@Functionality: 有关日期工具类
/
public class DateUtil extends TimeUtil {
/
Logger for this class
/
private static final Logger     logger = Logger.getLogger( DateUtil.class );


/ 日期转化 /
private static final SimpleDateFormat sdf   = new SimpleDateFormat( "yyyy-MM-dd" );

/
@Functionality: 构造函数
/
public DateUtil() {}

//----------------------日期计算---------------------------------------------------------------------------------

/
是否开始日期在结束日期之前(不包括相等)
@param p_startDate
@param p_endDate
@return boolean 在结束日期前:ture;否则:false
@author zhuqx
@Date:   2006-10-31
/
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;
}

/
获取2个字符日期的天数差
@param p_startDate
@param p_endDate
@return 天数差
@author zhuqx
@Date:   2006-10-31
/
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;
}

/
获取2个字符日期的周数差
@param p_startDate
@param p_endDate
@return 周数差
@author zhuqx
@Date:   2006-10-31
/
public static long getWeeksOfTowDiffDate( String p_startDate, String p_endDate ) throws ParseException {
   return getDaysOfTowDiffDate(p_startDate,p_endDate)/7;
}

/
获取2个字符日期的月数差
@param p_startDate
@param p_endDate
@return 月数差
@author zhuqx
@Date:   2006-10-31
/
public static long getMonthsOfTowDiffDate( String p_startDate, String p_endDate ) throws ParseException {
   return getDaysOfTowDiffDate(p_startDate,p_endDate)/30;
}
/
获取2个字符日期的年数差
@param p_startDate
@param p_endDate
@return 年数差
@author zhuqx
@Date:   2006-10-31
/
public static long getYearsOfTowDiffDate( String p_startDate, String p_endDate ) throws ParseException {
   return getDaysOfTowDiffDate(p_startDate,p_endDate)/365;
}

/
在给定的日期基础上添加年,月,日、时,分,秒
例如要再2006-10-21(uitl日期)添加3个月,并且格式化为yyyy-MM-dd格式,
这里调用的方式为 addDate(2006-10-21,3,Calendar.MONTH,"yyyy-MM-dd")
@param p_startDate 给定的日期
@param p_count 时间的数量
@param p_field 添加的域
@param p_format 时间转化格式,例如:yyyy-MM-dd hh:mm:ss 或者yyyy-mm-dd等
@return 添加后格式化的时间
@Date:   2006-10-31
/
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);
}

分享到:
评论

相关推荐

    java日期工具类

    java日期工具类,java日期工具类,java日期工具类,java日期工具类

    Java日期工具类

    Java日期工具类 1、日期的各种格式化 2、获取当前年度 3、获取当前月份 4、获取当前天号数 5、获取当前时间往前推一个月的时间 6、获取上个月("MMM yyyy") 7、获取上个月("yyyymm") 8、获取上个月("yyyy-mm") 9、...

    Java 日期比较工具类

    Java 日期比较工具类 各种日期操作及计算( 获取两个日期 间隔天数 间隔月数 格式化日期 )

    日期工具类

    日期工具类

    日期处理工具类

    "日期处理工具类"通常是指一个自定义的类,它封装了一些常用的方法,例如日期格式化、字符串转换为日期以及对日期进行加减操作。这个类可能是开发者为了提高代码复用性和简化日期处理逻辑而创建的。 首先,让我们...

    日期工具类源码

    日期工具类

    日期转换工具类

    ### 日期转换工具类 #### 知识点概述 本文将详细介绍一个名为`DateTimeUtil`的Java工具类,该类提供了日期格式化和解析的功能。此类利用了`org.joda.time`包中的`DateTime`和`DateTimeFormat`类来实现字符串与日期...

    java 日期操作工具类

    全面的日期开发工具类,对日期进行各种转换,应用于大部分项目的开发需求。

    小程序日期转换的工具类

    此工具类包含了日期和时间戳互转,根据生日计算出年龄和星座

    日期工具类,包括各种日期之间的转换

    根据提供的文件信息,本文将对日期工具类进行深入解析,并详细介绍其包含的主要功能与实现方法。此工具类主要涉及到了日期格式化、日期解析、获取当前时间等实用操作。 ### 一、概述 该日期工具类名为 `DateUtil`...

    Date日期操作工具类

    在Java编程中,Date类是处理日期和时间的基础类,但在实际开发中,由于Date类本身的API设计并不十分友好,通常我们会...通过学习和使用这个工具类,开发者可以更高效地处理日期相关的任务,而无需关心底层复杂的细节。

    DateUtils(日期工具类)

    DateUtils(日期工具类),包含日期格式化,解析等。

    日期工具类 可以进行日期天数计算

    这个工具类是计算两个时间相差多少天的工具类以及格式化时间

    js 日期处理工具类

    js 日期处理工具类,实现了日期的转换,日期格式: 30分钟前,16:20,昨天 11:11、11-17 10:10,等格式。

    Java - DateUtil 日期时间转换工具类

    内容概要:日期时间转换工具类,包括基本的Date类型,String类型,TimeStamp类型,LocalDateTime类型,LocalDate类型之间的互相转换,还提供了许多与时间获取,时间计算有关的方法,如:获取指定日期几天后的日期;...

Global site tag (gtag.js) - Google Analytics