您的位置:首页 > 其它

一个简单的日期操作类

2010-08-30 21:57 127 查看
在很多项目中都需要对日期进行操作或是转换,在此对日期操作做了一个简单的汇总,把一些常用的方法进行了封装,代码写得不好,希望各位大虾多多指教!

//DateOperateUtils.java

package com.myclover.utils.date;

import java.text.ParseException;

import java.text.SimpleDateFormat;

import java.util.Calendar;

import com.myclover.utils.constant.DateConstants;

/**

* <pre>

* 功能描述: 日期操作类

* 实现日期格式化、日期计算、日期转换等功能

* </pre>

* @author 方方 <p>

* Blog: http://myclover.javaeye.com <p>

* 日 期: 2010-08-28 <p>

* @version 1.0 <p>

* {@code com.myclover.utils.date.DateOperateUtils.java com.myclover.utils.constant.DateConstants.java}

*

*/

public class DateOperateUtils {



/**

*

* 功能描述:将字符串类型的日期转换为指定格式的Date类型的日期

* @param sDate 字符串日期,长度大于8,例如:2010-5-1、2010-05-01、2010-05-01 10:23:35

* @param format 需要转换的日期格式,例如:yyyy-MM-dd,yy-MM-dd 等

* 默认格式为:yyyy-MM-dd HH:mm:ss,format参数为空时表示默认格式

* @return 返回:

* 如果转换成功,则返回date对象,例如:Sat May 01 00:00:00 CST 2010 ,否则返回null

*/

public static java.util.Date parseStringToDate(String sDate, String format)

{

java.util.Date date = null;

if(format == null || format.trim().length() < 1)

{

format = DateConstants.DEFAULT_TIME_FORMAT;

}

if (sDate == null || sDate.length() < 8)

{

return null ;

}

try

{

SimpleDateFormat simpleDateFormat = new SimpleDateFormat(format);

date = simpleDateFormat.parse(sDate);

} catch (ParseException e)

{

System.err.println("字符串转换成指定格式的日期失败:" + e.getMessage());

e.printStackTrace();

}

return date;

}



/**

*

* 功能描述:将字符串类型的日期转换为指定格式的字符串

* @param sDate 字符串日期,长度大于8,例如:2010-5-1、2010-05-01、2010-05-01 10:23:35

* @param format 需要转换的日期格式,例如:yyyy-MM-dd,yy-MM-dd 等

* 默认格式为:yyyy-MM-dd HH:mm:ss,format参数为空时表示默认格式

* @return 返回:

* 如果转换成功,则返回指定格式的字符串,例如:2010-05-01 ,否则返回空

*/

public static String parseSDateToString(String sDate, String format)

{

java.util.Date date = null;

String str = null;

if(format == null || format.trim().length() < 1)

{

format = DateConstants.DEFAULT_TIME_FORMAT;

}

if (sDate == null || sDate.length() < 8)

{

return "";

}

try

{

SimpleDateFormat simpleDateFormat = new SimpleDateFormat(format);

date = simpleDateFormat.parse(sDate);

str = simpleDateFormat.format(date);

} catch (ParseException e)

{

System.err.println("字符串转换指定格式的日期字符串失败:" + e.getMessage());

e.printStackTrace();

}

return str;

}



/**

*

* 功能描述:将日期转换成指定格式的字符串

* @param date 需要转换的日期

* @param format 需要转换的格式,例如:yyyy-MM-dd,yy-MM-dd,yyyy-MM-dd HH:mm:ss 等

* 默认格式为:yyyy-MM-dd HH:mm:ss,format参数为空时表示默认格式

* @return 返回:

* 如果转换成功,则返回指定格式的字符串,否则返回空

*/

public static String parseDateToString(java.util.Date date, String format)

{

String str = null;

if(format == null || format.trim().length() < 1)

{

format = DateConstants.DEFAULT_TIME_FORMAT;

}

if (date == null)

{

return "";

}

SimpleDateFormat simpleDateFormat = new SimpleDateFormat(format);

str = simpleDateFormat.format(date);

return str;

}



/**

* 转换后的日期格式为:yy-MM-dd

* @param date

* @return

*/

public static String parseDateToYYMMdd(java.util.Date date)

{

return DateOperateUtils.parseDateToString(date, DateConstants.YYMMdd);

}





/**

* 转换后的日期格式为:yy-MM-dd HH:mm:ss

* @param date

* @return

*/

public static String parseDateToYYMMddHHmmss(java.util.Date date)

{

return DateOperateUtils.parseDateToString(date, DateConstants.YYMdHHmmss);

}





/**

* 转换后的日期格式为:yy年MM月dd日

* @param date

* @return

*/

public static String parseDateToYYMMdd_ZH(java.util.Date date)

{

return DateOperateUtils.parseDateToString(date, DateConstants.YYMMdd_ZH);

}





/**

* 转换后的日期格式为:yy年MM月dd日 HH:mm:ss

* @param date

* @return

*/

public static String parseDateToYYMMdd_ZHHHmmss(java.util.Date date)

{

return DateOperateUtils.parseDateToString(date, DateConstants.YYMMdd_ZHHHmmss);

}





/**

* 转换后的日期格式为:yyyyMMdd

* @param date

* @return

*/

public static String parseDateToYYYYMMdd(java.util.Date date)

{

return DateOperateUtils.parseDateToString(date, DateConstants.YYYYMMdd);

}





/**

* 转换后的日期格式为:yyyyMMddHHmmss

* @param date

* @return

*/

public static String parseDateToYYYYMMddHHmmss(java.util.Date date)

{

return DateOperateUtils.parseDateToString(date, DateConstants.YYYYMMddHHmmss);

}





/**

* 转换后的日期格式为:yyyy-MM-dd HH:mm:ss

* @param date

* @return

*/

public static String parseDateToDEFAULT_TIME(java.util.Date date)

{

return DateOperateUtils.parseDateToString(date, DateConstants.DEFAULT_TIME_FORMAT);

}





/**

* 转换后的日期格式为:yyyy-MM-dd

* @param date

* @return

*/

public static String parseDateToDEFAULT_DATE(java.util.Date date)

{

return DateOperateUtils.parseDateToString(date, DateConstants.DEFAULT_DATE_FORMAT);

}





/**

* 转换后的日期格式为:yyyy年MM月dd日

* @param date

* @return

*/

public static String parseDateToYYYYMMdd_ZH(java.util.Date date)

{

return DateOperateUtils.parseDateToString(date, DateConstants.YYYYMMdd_ZH);

}





/**

* 转换后的日期格式为:yyyy年MM月dd日 HH:mm:ss

* @param date

* @return

*/

public static String parseDateToYYYYMMdd_ZHHHmmss(java.util.Date date)

{

return DateOperateUtils.parseDateToString(date, DateConstants.YYYYMMdd_ZHHHmmss);

}





/**

* 转换后的日期格式为:yyyy/MM/dd

* @param date

* @return

*/

public static String parseDateToYYYYMd(java.util.Date date)

{

return DateOperateUtils.parseDateToString(date, DateConstants.YYYYMd);

}





/**

* 转换后的日期格式为:yyyy/MM/dd HH:mm:ss

* @param date

* @return

*/

public static String parseDateToYYYYMdHHmmss(java.util.Date date)

{

return DateOperateUtils.parseDateToString(date, DateConstants.YYYYMdHHmmss);

}





/**

* 转换后的日期格式为:yy/MM/dd

* @param date

* @return

*/

public static String parseDateToYYMd(java.util.Date date)

{

return DateOperateUtils.parseDateToString(date, DateConstants.YYMd);

}





/**

* 转换后的日期格式为:yy/MM/dd HH:mm:ss

* @param date

* @return

*/

public static String parseDateToYYMdHHmmss(java.util.Date date)

{

return DateOperateUtils.parseDateToString(date, DateConstants.YYMdHHmmss);

}







/**

*

* 功能描述:将数据库格式的日期转换为字符串

* @param date 数据库格式的日期

* @return 返回:

* 返回转换后的字符串

*/

public static String parseSqlDateToString(java.sql.Date date)

{

return String.valueOf(date);

}





/**

*

* 功能描述:将数据库格式的日期转换为java.util.Date类型的日期

* @param date 数据库格式的日期

* @return 返回:

* 返回转换后的日期

*/

public static java.util.Date parseSqlDateToDate(java.sql.Date date)

{

String str = DateOperateUtils.parseSqlDateToString(date);

return DateOperateUtils.parseStringToDate(str, DateConstants.DEFAULT_DATE_FORMAT);

}





/**

*

* 功能描述:将一个长整型的数据转换为日期格式的字符串

* @param time 长整型数据

* @param format 转换格式

* @return 返回:

* 返回转换格式后的字符串

*/

public static String parseLongToString(long time , String format)

{

java.util.Date date = new java.util.Date(time);

return DateOperateUtils.parseDateToString(date, format);

}





/**

*

* 功能描述:将java.util.Date类型的日期转换为数据库格式的日期

* @param date java.util.Date类型的日期

* @return 返回:

* 返回转换后的数据库格式的日期

*/

public static java.sql.Date parseUDateToSqlDate(java.util.Date date)

{

if(date == null)

{

return null;

}

return new java.sql.Date(date.getTime());

}





/**

*

* 功能描述:将java.util.Date转换为java.sql.Timestamp

* @param date 需要转换的java.util.Date数据

* @return 返回:

* 返回转换后的java.sql.Timestamp

*/

public static java.sql.Timestamp parseToSqlTimestamp(java.util.Date date)

{

if (date == null)

{

return null;

}

return new java.sql.Timestamp(date.getTime());

}





/**

* 功能描述:得到指定日期所在周的星期几的日期

* @param date 指定日期

* @param dayOfWeek 星期几

* @return 返回:

* 返回指定星期几的日期

*/

public static java.util.Date getDateOfWeek(java.util.Date date, int dayOfWeek)

{

Calendar c = Calendar.getInstance();

c.setTime(date);

c.set(Calendar.DAY_OF_WEEK, dayOfWeek);

return c.getTime();

}



/**

* 功能描述:获取指定日期为当前年的第几周

* @param date 指定日期

* @return 返回:

* 返回当前年的第几周

*/

public static int getWeekOfYear(java.util.Date date)

{

Calendar cal = Calendar.getInstance();

cal.setTime(date);

return cal.get(Calendar.WEEK_OF_YEAR);

}



/**

* 功能描述:获取指定年的第几周的第一天日期

* @param year 指定年

* @param nWeek 第几周

* @return 返回:

* 返回指定年的第几周的第一天日期

*/

public static java.util.Date getFirstDateOfWeek(int year, int nWeek)

{

Calendar c = Calendar.getInstance();

c.set(Calendar.YEAR, year);

c.set(Calendar.WEEK_OF_YEAR, nWeek);

c.set(Calendar.DAY_OF_WEEK, c.getFirstDayOfWeek());

return c.getTime();

}



/**

* 功能描述:获取指定年的第几周的最后一天日期

* @param year 指定年

* @param nWeek 第几周

* @return 返回:

* 返回指定年的第几周的最后一天日期

*/

public static java.util.Date getLastDateOfWeek(int year, int nWeek)

{

Calendar c = Calendar.getInstance();

c.set(Calendar.YEAR, year);

c.set(Calendar.WEEK_OF_YEAR, nWeek);

c.set(Calendar.DAY_OF_WEEK, c.getFirstDayOfWeek() + 6);

return c.getTime();

}



/**

* 功能描述:获取当前年份

* @return 返回:

* 返回当前年份

*/

public static int getCurrentYear()

{

Calendar c = Calendar.getInstance();

return c.get(Calendar.YEAR);

}





/**

* 功能描述:获取当前月

* @return 返回:

* 返回当前月对应的值

*/

public static int getCurrentMonth()

{

Calendar c = Calendar.getInstance();

return c.get(Calendar.MONTH) + 1;

}



/**

* 功能描述:获取指定日期中的年份

* @param date 指定日期

* @return 返回:

* 返回年份

*/

public static int getYearOfDate(java.util.Date date)

{

if (date == null)

{

return 0;

}

Calendar c = Calendar.getInstance();

c.setTime(date);

return c.get(Calendar.YEAR);

}



/**

* 功能描述:获取指定日期中的月份

* @param date 指定日期

* @return 返回:

* 返回对应的月份

*/

public static int getMonthOfDate(java.util.Date date)

{

if (date == null)

{

return 0;

}

Calendar c = Calendar.getInstance();

c.setTime(date);

return c.get(Calendar.MONTH) + 1;

}



/**

* 功能描述:获取指定日期中的天

* @param date 指定日期

* @return 返回:

* 返回指定日期对应的天

*/

public static int getDayOfDate(java.util.Date date)

{

if (date == null)

{

return 0;

}

Calendar c = Calendar.getInstance();

c.setTime(date);

return c.get(Calendar.DAY_OF_MONTH);

}



/**

* 功能描述:获取指定日期中的小时

* @param date 指定日期

* @return 返回:

* 返回对应的小时

*/

public static int getHourOfDate(java.util.Date date)

{

if (date == null)

{

return 0;

}

Calendar c = Calendar.getInstance();

c.setTime(date);

return c.get(Calendar.HOUR_OF_DAY);

}



}



//DateConstants.java

package com.myclover.utils.constant;

/**

* 功能描述:常用工具类的常量信息

* @author 方方

* @version 1.0

*

*/

public class DateConstants {



public static final String DEFAULT_TIME_FORMAT = "yyyy-MM-dd HH:mm:ss";

public static final String DEFAULT_DATE_FORMAT = "yyyy-MM-dd";

public static final String YYMMdd="yy-MM-dd";

public static final String YYMMddHHmmss="yy-MM-dd HH:mm:ss";

public static final String YYMMdd_ZH="yy年MM月dd日";

public static final String YYMMdd_ZHHHmmss="yy年MM月dd日 HH:mm:ss";

public static final String YYYYMMdd="yyyyMMdd";

public static final String YYYYMMddHHmmss="yyyyMMddHHmmss";

public static final String YYYYMMdd_ZH="yyyy年MM月dd日";

public static final String YYYYMMdd_ZHHHmmss="yyyy年MM月dd日 HH:mm:ss";

public static final String YYYYMd="yyyy/MM/dd";

public static final String YYYYMdHHmmss="yyyy/MM/dd HH:mm:ss";

public static final String YYMd="yy/MM/dd";

public static final String YYMdHHmmss="yy/MM/dd HH:mm:ss";

public static final String HHmmss="HH:mm:ss";



}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: