一个简单的日期操作类

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

//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";
   
}
 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值