`
myclover
  • 浏览: 195183 次
  • 性别: Icon_minigender_1
  • 来自: 成都
社区版块
存档分类
最新评论

一个简单的日期操作工具类

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


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

分享到:
评论

相关推荐

    Date日期操作工具类

    本主题聚焦于一个名为"Date日期操作工具类"的实用工具,它提供了丰富的功能,包括日期格式化、字符串与日期之间的转换、日期的加减操作以及计算日期间隔等。 首先,让我们深入理解`java.util.Date`类。Date类代表了...

    Java 日期比较工具类

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

    日期操作工具类

    日期操作工具类 /** * 将日期对象按照换为时间字符串 * 默认格式为"yyyy-MM-dd HH:mm:ss" * @param sourceTime * @return * @throws ParseException */ public static String formatDate(Date ...

    java 日期操作工具类

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

    日期处理工具类

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

    java 日期操作工具类:包括计算两个时间相差距离多少天多少小时多少分多少秒

    这篇博客文章“java 日期操作工具类:包括计算两个时间相差距离多少天多少小时多少分多少秒”提供了一个实用的工具类,帮助开发者更方便地处理日期和时间差异。下面将详细解释这个工具类中的关键知识点。 1. **Java...

    java日期类型操作工具类

    java日期类型操作工具类

    java操作日期时间工具类

    在Java编程语言中,处理日期和...总之,一个良好的日期时间工具类应该简化日期时间的常见操作,提高代码的可读性和可维护性。在Java 8及更高版本中,可以考虑利用`java.time`包提供的新特性来进一步优化工具类的设计。

    日期转换工具类

    本文将详细介绍一个名为`DateTimeUtil`的Java工具类,该类提供了日期格式化和解析的功能。此类利用了`org.joda.time`包中的`DateTime`和`DateTimeFormat`类来实现字符串与日期对象之间的相互转换,并且支持自定义...

    java操作工具类

    Java操作工具类是Java开发中常见的一种代码组织方式,它集合了各种常用的功能函数,以提高代码复用性和开发效率。这些工具类通常包含了对字符串、数组、集合、日期时间等基本数据类型的操作,以及文件I/O、网络通信...

    java日期处理工具类

    日期操作工具类,主要实现了日期的常用操作。 * * 在工具类中经常使用到工具类的格式化描述,这个主要是一个日期的操作类,所以日志格式主要使用 SimpleDateFormat的定义格式. * * 格式的意义如下: 日期和...

    Java 农历日期操作工具类

    "Java 农历日期操作工具类" 提供了一种解决方案,通过自定义的类或库来实现农历日期与公历日期之间的转换。这篇博客文章(链接:https://liuwei1981.iteye.com/blog/666916)可能详细介绍了如何创建这样一个工具类,...

    vue 字符和日期转换工具类

    vue 字符和日期转换工具类,先将util里面的公共对象抛出,全局使用

    30个java工具类

    [工具类] 文件操作工具类 .java.txt [工具类] 序列化保存为XML文件的工具类 .java.txt [工具类] 一个压缩工具类.java.txt [工具类] 用java编写简单UDP网络通信程序 .java.txt [工具类] 中文验证.jsp.txt [工具类] ...

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

    通过使用此类,可以大大简化日常开发中涉及日期操作的工作量。 ### 二、关键常量与变量定义 #### 1. 常量定义 - `DATE_MILLIS`: 一天的毫秒数(24小时 * 60分钟 * 60秒 * 1000毫秒)。 - `DAY_HAVINTERVAL`: 日期...

    jaava和jsp工具类

    [工具类] 文件操作工具类 .java [工具类] 序列化保存为XML文件的工具类 .java [工具类] 一个压缩工具类 .java [工具类] 用java编写简单UDP网络通信程序 .java [工具类] img .jsp [工具类] 分页split_page.jsp ....

    Java日期常用操作方法工具类

    本文将重点讲解Java日期的常用操作方法,主要基于提供的`JavaDateUtil.java`文件,假设这是一个自定义的日期工具类。 首先,我们来了解`java.util.Date`。这个类在早期的Java版本中被广泛使用,但它的API设计并不...

    java时间日期格式化工具类

    现在回到`DateUtil`工具类,这个类通常包含了一系列静态方法,用于简化日期格式化的操作。例如,`DateUtil`可能会有如下方法: ```java public class DateUtil { public static String format(Date date, String ...

Global site tag (gtag.js) - Google Analytics