JAVA 日期工具类的总结
2016-03-08 13:07
387 查看
一般,在项目中,我们会会经常使用到日期的各种方式的处理,在各个业务逻辑操作中,都需要相关的日期操作,因此,实现项目中的日期工具类的提出,还是十分重要的,下面,就项目中常用到的日期的相关操作方式,做了一个小的工具类,方便项目使用,也方便以后的复用和查询.下面见代码:
工具类中的方法,一般都是定义成共有的静态防范,方便其他的业务的注入工具类,调用类的方法.注意:
1,首先定义了一系列的日期格式字符串,方便获取任意的格式的时间字符串
2,定义了一些操作方法,方便获取时间信息,以及一些计算操作,
3.静态的方法,直接使用类名调用即可,非常适用项目中的实时调用.
/** * * 〈一句话功能简述〉<br> * 〈功能详细描述〉 日期工具类 * * @author 12061799 * @see [相关类/方法](可选) * @since [产品/模块版本] (可选) */ public class DateUtil { // 日期格式 年. public static final String YEAR_FORMAT = "yyyy"; // 默认日期格式. public static final String DEFALT_DATE_FORMAT = "yyyy-MM-dd"; // 默认时间格式.带时分秒 public static final String DEFUALT_TIMESTAMPE_FORMAT = "yyyy-MM-dd hh:mm:ss sss"; // 时间格式yyyyMMddHHmmssSSS. public static final String DATE_FORMATE_YYYYMMDDHHMMSSSSS = "yyyyMMddHHmmssSSS"; // 时间格式yyyy-MM-dd HH:mm:ss. public static final String DATE_FORMATE_YYYYMMDDHHMMSS = "yyyy-MM-dd HH:mm:ss"; // 时间格式yyMMdd. public static final String DATE_FORMATE_YYMMDD = "yyMMdd"; // 时间格式DATE_FORMATE_YYYYMMDD. public static final String DATE_FORMATE_YYYYMMDD = "yyyyMMdd"; // 时间格式yyyyMMddHHmmssSSS. public static final String DATE_FORMATE_YYMMDDHHMMSS = "yyMMddHHmmss"; /** * private constructor */ private DateUtil() { } /** * 取得现在时间. * * @return 现在时间 */ public static String getCurrentSqlTimestampString() { Date today = new Date(); SimpleDateFormat sdf = new SimpleDateFormat(DEFUALT_TIMESTAMPE_FORMAT); return sdf.format(today); } /** * 取得指定格式的时间格式字符串 * * @return 现在时间 */ public static String getDateStringByFormat(String format) { Date today = new Date(); SimpleDateFormat sdf = new SimpleDateFormat(format); return sdf.format(today); } /** * 将传入的时间转换为指定时间格式字符串. * * @param time 传入时间 * @param dateFormat 时间格式 * @return 时间字符串 */ public static String formatTimeStamp(Timestamp time, String dateFormat) { if (time == null) { return ""; } SimpleDateFormat sdf = new SimpleDateFormat(dateFormat); return sdf.format(time); } /** * 取得现在时间. * * @return 现在时间 */ public static Timestamp getCurrentSqlTimestamp() { return new Timestamp(System.currentTimeMillis()); } /** * 取得今天日期字符串. * * @return 今天日期字符串 */ public static String getCurrentDay() { Date today = new Date(); SimpleDateFormat sdf = new SimpleDateFormat(DEFALT_DATE_FORMAT); return sdf.format(today); } /** * 取得今天日期+时间字符串. * * @return 今天日期字符串 YYYY-MM-dd HH:mm:ss */ public static String getCurrentDayTime() { Date today = new Date(); SimpleDateFormat sdf = new SimpleDateFormat(DATE_FORMATE_YYYYMMDDHHMMSS); return sdf.format(today); } /** * 将传入的时间转换为默认时间格式字符串. * * @param time 传入时间 * @return 时间字符串 */ public static String formatTimeStampDefualt(Timestamp time) { if (time == null) { return ""; } SimpleDateFormat sdf = new SimpleDateFormat(DEFUALT_TIMESTAMPE_FORMAT); return sdf.format(time); } /** * 将传入日期转换为默认格式字符串. * * @param date 传入日期 * @return 日期字符串 */ public static String formatDateDefault(Date date) { if (date == null) { return null; } SimpleDateFormat sdf = new SimpleDateFormat(DEFALT_DATE_FORMAT); return sdf.format(date); } /** * 功能描述: 根据指定的格式化规则返回当前日期 * * @param string * @return [相关类/方法](可选) * @since [产品/模块版本](可选) */ public static String getCurrentDate(String formater) { SimpleDateFormat format = new SimpleDateFormat(formater); return format.format(new Date()); } /** * 将传入日期转换为指定格式字符串. * * @param date 传入日期 * @param dateFormat 时间格式 * @return 日期字符串 */ public static String formatDateByDateFormate(Date date, String dateFormat) { if (date == null) { return null; } SimpleDateFormat sdf = new SimpleDateFormat(dateFormat); return sdf.format(date); } /** * 取得当前年 . * * @return 当前年 */ public static String getCurrentYear() { Date today = new Date(); SimpleDateFormat sdf = new SimpleDateFormat(YEAR_FORMAT); return sdf.format(today); } public static Date formatDate(String date) throws ParseException { DateFormat df = new SimpleDateFormat(DEFALT_DATE_FORMAT); return df.parse(date); } /** * * 功能描述: <br> * 计算距今天指定天数的日期 * * @param days * @return * @since 20130630 */ public static String getDateAfterDays(int days) { Calendar date = Calendar.getInstance();// today date.add(Calendar.DATE, days); SimpleDateFormat simpleDate = new SimpleDateFormat(DEFALT_DATE_FORMAT); return simpleDate.format(date.getTime()); } /** * 在指定的日期的前几天或后几天 * * @param source 源日期(yyyy-MM-dd) * @param days 指定的天数,正负皆可 * @return * @throws ParseException */ public static String addDays(String source, int days) { Date date = null; try { date = formatDate(source); } catch (ParseException e) { } Calendar calendar = Calendar.getInstance(); calendar.setTime(date); calendar.add(Calendar.DATE, days); SimpleDateFormat dateFormat = new SimpleDateFormat(DEFALT_DATE_FORMAT); return dateFormat.format(calendar.getTime()); } /** * * 功能描述: <br> * 〈功能详细描述〉校验正确的日期格式 * * @param str * @return * @see [相关类/方法](可选) * @since [产品/模块版本](可选) */ public static boolean isValidDate(String str, String format) { boolean convertSuccess = true; // 指定日期格式为四位年/两位月份/两位日期,注意yyyy/MM/dd区分大小写; SimpleDateFormat sf = new SimpleDateFormat(format); try { // 设置lenient为false. 否则SimpleDateFormat会比较宽松地验证日期,比如2007/02/29会被接受,并转换成2007/03/01 sf.setLenient(false); sf.parse(str); } catch (ParseException e) { // 如果throw java.text.ParseException或者NullPointerException,就说明格式不对 convertSuccess = false; } return convertSuccess; } /** * * 功能描述: <br> * 〈功能详细描述〉计算时间相隔的天数 * * @param beginDateStr * @param endDateStr * @return * @see [相关类/方法](可选) * @since [产品/模块版本](可选) */ public static long getDaySub(String beginDateStr, String endDateStr) { long day = 0; SimpleDateFormat format = new SimpleDateFormat(DateUtil.DEFALT_DATE_FORMAT); Date beginDate; Date endDate; try { beginDate = format.parse(beginDateStr); endDate = format.parse(endDateStr); day = (endDate.getTime() - beginDate.getTime()) / (24 * 60 * 60 * 1000); } catch (ParseException e) { throw new RuntimeException("传入日期参数有误!",e); } return day; } }
工具类中的方法,一般都是定义成共有的静态防范,方便其他的业务的注入工具类,调用类的方法.注意:
1,首先定义了一系列的日期格式字符串,方便获取任意的格式的时间字符串
2,定义了一些操作方法,方便获取时间信息,以及一些计算操作,
3.静态的方法,直接使用类名调用即可,非常适用项目中的实时调用.
相关文章推荐
- JAVA两种单例模式样例
- 第二章 java面向对象1
- 10. SpringMVC 数据验证例子3 - 添加国际化支持
- java常量池概念
- java的运算符,表达式和语句
- java中的反射
- leetcode:Same Tree 【Java】
- 160308、java排序(形如1.1、1.2.1)
- Spring框架的工作原理
- leetcode:Recover Binary Search Tree 【Java】
- (五) SpringMVC 导出Excel
- 对象池的优劣
- 9. SpringMVC 数据验证例子2 - 自定义数据验证规则
- Spring 4.2.4.RELEASE MVC 学习笔记 - 8.1 - text/gson(咋个办呢 zgbn)
- Leetcode:9. Palindrome Number(JAVA)
- Java中数据存储在哪?以及equals和==的区别
- java.lang.IndexOutOfBondsException:setSpan(3..3) ends beyond length 2
- 转载 java_web开发入门
- Canal+Otter - Canal篇(1)
- Java并发编程(十六):线程间协作的两种方式:wait、notify、notifyAll和Condition(转载)