关于日期时间操作工具类DateUtil(一)-----对java.util.Date 的操作.
2013-02-04 15:16
633 查看
最近发现我们项目里的对日期时间操作的工具类DateUtil感觉挺好用的,现在就总结一下,便于日后查看。
-----------------------------------------------------------------------------------------------------------
System.out.println(toString(new java.util.Date(),new SimpleDateFormat("yyyyMMddHHmmss")));
输出:20130204145224
-----------------------------------------------------------------------------------------------------------
-----------------------------------------------------------------------------------------------------------
System.out.println(date2String(new java.util.Date(),"yyyy-MM-dd HH:mm:ss"));
输出:2013-02-04 14:55:27
-----------------------------------------------------------------------------------------------------------
-----------------------------------------------------------------------------------------------------------
System.out.println(toDate("2013-02-01", new SimpleDateFormat("yyyy-MM-dd")));
System.out.println(date2String(toDate("2013-02-01", new SimpleDateFormat("yyyy-MM-dd")),"yyyyMMddHHmmss"));
输出:Fri Feb 01 00:00:00 CST 2013
20130201000000
-----------------------------------------------------------------------------------------------------------
-----------------------------------------------------------------------------------------------------------
System.out.println(stringToDate("20130201170854","yyyyMMddHHmmss"));
输出:Fri Feb 01 17:08:54 CST 2013
-----------------------------------------------------------------------------------------------------------
-----------------------------------------------------------------------------------------------------------
date1 = new SimpleDateFormat("yyyy-MM-dd").parse("2007-03-02");
System.out.println(DateUtil.toString(addYear(date1, -1),new SimpleDateFormat(“yyyy-MM-dd HH:mm”)));
输出:2006-03-02 00:00
-----------------------------------------------------------------------------------------------------------
-----------------------------------------------------------------------------------------------------------
date1 = new SimpleDateFormat("yyyy-MM-dd").parse("2007-03-02");
System.out.println(DateUtil.toString(addMonth(date1, 4),new SimpleDateFormat(“yyyy-MM-dd”)));
输出:2007-07-02
-----------------------------------------------------------------------------------------------------------
-----------------------------------------------------------------------------------------------------------
date1 = new SimpleDateFormat("yyyy-MM-dd").parse("2007-03-02");
System.out.println(DateUtil.toString(addDays(date1, 7),new SimpleDateFormat(“yyyy-MM-dd”)));
输出:2007-03-09
-----------------------------------------------------------------------------------------------------------
-----------------------------------------------------------------------------------------------------------
date1 = new SimpleDateFormat("yyyy-MM-dd").parse("2007-03-02");
System.out.println(DateUtil.toString(addHour(date1, 7),new SimpleDateFormat(“yyyy-MM-dd HH:mm”)));
输出:2007-03-02 02:00
-----------------------------------------------------------------------------------------------------------
-----------------------------------------------------------------------------------------------------------
date1 = new SimpleDateFormat("yyyy-MM-dd").parse("2007-03-02");
date2 = new SimpleDateFormat("yyyy-MM-dd").parse("2008-05-01");
System.out.println(getPassMonths(date1,date2));
输出:14
-----------------------------------------------------------------------------------------------------------
-----------------------------------------------------------------------------------------------------------
date1 = new SimpleDateFormat("yyyy-MM-dd HH:mm").parse("2008-05-01 12:23");
date2 = new SimpleDateFormat("yyyy-MM-dd").parse("2008-05-01");
System.out.println(isSameDate(date1,date2,"yyyy-MM-dd"));
输出:true
-----------------------------------------------------------------------------------------------------------
date1 = new SimpleDateFormat("yyyy-MM-dd HH:mm").parse("2008-05-01 12:23");
date2 = new SimpleDateFormat("yyyy-MM-dd").parse("2008-05-01");
System.out.println(getDayBefore(date1));
输出:2008-04-30
-----------------------------------------------------------------------------------------------------------
-----------------------------------------------------------------------------------------------------------
System.out.println(new java.util.Date());
System.out.println(dateChange(new java.util.Date()));
输出:Mon Feb 04 15:19:50 CST 2013
2013-02-04
-----------------------------------------------------------------------------------------------------------
/** * 利用指定SimpleDateFormat instance转换java.util.Date到String * * @param dt * java.util.Date instance * @param formatter * SimpleDateFormat Instance * @return String */ private static String toString(java.util.Date dt, SimpleDateFormat formatter) { String sRet = null; try { if (dt == null) sRet = ""; else sRet = formatter.format(dt).toString(); } catch (Exception e) { // e.printStackTrace(); log.error("", e); sRet = null; } return sRet; }
-----------------------------------------------------------------------------------------------------------
System.out.println(toString(new java.util.Date(),new SimpleDateFormat("yyyyMMddHHmmss")));
输出:20130204145224
-----------------------------------------------------------------------------------------------------------
/** * 日期转换为字符串 * * @param date * @param formatString * @return */ public static String date2String(java.util.Date date, String formatString) { if (date == null || formatString == null || "".equals(formatString)) { return ""; } String result = ""; try { SimpleDateFormat formt = new SimpleDateFormat(formatString); result = formt.format(date); } catch (Exception e) { result = ""; log.error("---date2String---", e); } return result; }
-----------------------------------------------------------------------------------------------------------
System.out.println(date2String(new java.util.Date(),"yyyy-MM-dd HH:mm:ss"));
输出:2013-02-04 14:55:27
-----------------------------------------------------------------------------------------------------------
/** * 利用指定SimpleDateFormat instance转化String到Date * * @param sDate * Date string * @param formatter * SimpleDateFormat instance * @return Date */ private static java.util.Date toDate(String sDate, SimpleDateFormat formatter) { java.util.Date dt = null; if (sDate == null || "".equals(sDate)) return null; try { dt = formatter.parse(sDate); } catch (Exception e) { // e.printStackTrace(); log.error("", e); dt = null; } return dt; }
-----------------------------------------------------------------------------------------------------------
System.out.println(toDate("2013-02-01", new SimpleDateFormat("yyyy-MM-dd")));
System.out.println(date2String(toDate("2013-02-01", new SimpleDateFormat("yyyy-MM-dd")),"yyyyMMddHHmmss"));
输出:Fri Feb 01 00:00:00 CST 2013
20130201000000
-----------------------------------------------------------------------------------------------------------
public static java.util.Date stringToDate(String stringDate, String format) { try { if (stringDate == null || "".equals(stringDate)) { stringDate = DateUtil.getSysDateString(); } java.util.Date date = new SimpleDateFormat(format) .parse(stringDate); return date; } catch (Exception e) { // e.printStackTrace(); log.error("", e); } return null; }
-----------------------------------------------------------------------------------------------------------
System.out.println(stringToDate("20130201170854","yyyyMMddHHmmss"));
输出:Fri Feb 01 17:08:54 CST 2013
-----------------------------------------------------------------------------------------------------------
/** * 时间加年 * * @param date * @param year * @return */ public static java.util.Date addYear(java.util.Date date, int year) { Calendar c1 = Calendar.getInstance(); c1.setTime(date); c1.add(Calendar.YEAR, year); return c1.getTime(); }
-----------------------------------------------------------------------------------------------------------
date1 = new SimpleDateFormat("yyyy-MM-dd").parse("2007-03-02");
System.out.println(DateUtil.toString(addYear(date1, -1),new SimpleDateFormat(“yyyy-MM-dd HH:mm”)));
输出:2006-03-02 00:00
-----------------------------------------------------------------------------------------------------------
/** * 时间加月 * * @param date * @param month * @return */ public static java.util.Date addMonth(java.util.Date date, int month) { Calendar c1 = Calendar.getInstance(); c1.setTime(date); c1.add(Calendar.MONTH, month); return c1.getTime(); }
-----------------------------------------------------------------------------------------------------------
date1 = new SimpleDateFormat("yyyy-MM-dd").parse("2007-03-02");
System.out.println(DateUtil.toString(addMonth(date1, 4),new SimpleDateFormat(“yyyy-MM-dd”)));
输出:2007-07-02
-----------------------------------------------------------------------------------------------------------
/** * 在java.util.DateObject上增加/减少几天 * * @param date * java.util.Date instance * @param days * 增加/减少的天数 * @return java.util.Date Object */ public static java.util.Date addDays(java.util.Date date, int days) { long temp = date.getTime(); return new java.util.Date(temp + DateUtil.DAY_MILLI * days); }
-----------------------------------------------------------------------------------------------------------
date1 = new SimpleDateFormat("yyyy-MM-dd").parse("2007-03-02");
System.out.println(DateUtil.toString(addDays(date1, 7),new SimpleDateFormat(“yyyy-MM-dd”)));
输出:2007-03-09
-----------------------------------------------------------------------------------------------------------
public static java.util.Date addHour(java.util.Date date, int hour) { Calendar c1 = Calendar.getInstance(); c1.setTime(date); c1.add(Calendar.HOUR, hour); return c1.getTime(); }
-----------------------------------------------------------------------------------------------------------
date1 = new SimpleDateFormat("yyyy-MM-dd").parse("2007-03-02");
System.out.println(DateUtil.toString(addHour(date1, 7),new SimpleDateFormat(“yyyy-MM-dd HH:mm”)));
输出:2007-03-02 02:00
-----------------------------------------------------------------------------------------------------------
/** * 两个日期之间相差多少月 * * @param begin * java.util.Date instance * @param end * java.util.Date instance * @return int */ public static int getPassMonths(java.util.Date begin, java.util.Date end) { Calendar c1 = Calendar.getInstance(); c1.setTime(begin); Calendar c2 = Calendar.getInstance(); c2.setTime(end); int years = 12 * (c2.get(Calendar.YEAR) - c1.get(Calendar.YEAR)); int months = c2.get(Calendar.MONTH) - c1.get(Calendar.MONTH); int days = c2.get(Calendar.DATE) - c1.get(Calendar.DATE); if (days <= 0) { if (years == 0 && months == 0) { return 1; } else { return years + months; } } else { if (years == 0 && months == 0) { return 1; } else { return years + months + 1; } } }
-----------------------------------------------------------------------------------------------------------
date1 = new SimpleDateFormat("yyyy-MM-dd").parse("2007-03-02");
date2 = new SimpleDateFormat("yyyy-MM-dd").parse("2008-05-01");
System.out.println(getPassMonths(date1,date2));
输出:14
-----------------------------------------------------------------------------------------------------------
/** * 判断两个时间是否为同一时间 * * @param date1 * @param date2 * @param formatString * @return */ public static boolean isSameDate(java.util.Date date1, java.util.Date date2, String formatString) { boolean result = false; try { SimpleDateFormat formt1 = new SimpleDateFormat(formatString); String str1 = formt1.format(date1); String str2 = formt1.format(date2); if (str1 == null || str2 == null) { return false; } if (str1.equals(str2)) { result = true; } } catch (Exception e) { result = false; log.error("---isSameDate---", e); } return result; }
-----------------------------------------------------------------------------------------------------------
date1 = new SimpleDateFormat("yyyy-MM-dd HH:mm").parse("2008-05-01 12:23");
date2 = new SimpleDateFormat("yyyy-MM-dd").parse("2008-05-01");
System.out.println(isSameDate(date1,date2,"yyyy-MM-dd"));
输出:true
-----------------------------------------------------------------------------------------------------------
/** * 获得指定日期的前一天 * * @param Day * @return */ public static java.sql.Date getDayBefore(java.util.Date date) { Calendar c = Calendar.getInstance(); c.setTime(date); int nday = c.get(Calendar.DATE); c.set(Calendar.DATE, nday - 1); java.util.Date d = (java.util.Date) c.getTime(); java.sql.Date sqlDate = new java.sql.Date(d.getTime()); return sqlDate; } -----------------------------------------------------------------------------------------------------------
date1 = new SimpleDateFormat("yyyy-MM-dd HH:mm").parse("2008-05-01 12:23");
date2 = new SimpleDateFormat("yyyy-MM-dd").parse("2008-05-01");
System.out.println(getDayBefore(date1));
输出:2008-04-30
-----------------------------------------------------------------------------------------------------------
/** * util.date 转换为 sql.date * * @return */ public static java.sql.Date dateChange(java.util.Date date) { java.sql.Date sqlDate = new java.sql.Date(date.getTime()); return sqlDate; }
-----------------------------------------------------------------------------------------------------------
System.out.println(new java.util.Date());
System.out.println(dateChange(new java.util.Date()));
输出:Mon Feb 04 15:19:50 CST 2013
2013-02-04
-----------------------------------------------------------------------------------------------------------
相关文章推荐
- 关于日期时间操作工具类DateUtil(二) -----对java.sql.Timestamp 的操作.
- 关于日期时间操作工具类DateUtil(三) -----对系统时间的操作.
- 日期时间DateUtil-java工具类
- java.util.Date时间日期的操作
- java中关于时间日期操作的常用函数(转摘)
- java中关于时间日期操作的常用函数
- java.util.Date_与_java.sql.Date互转_及_字符串转换为日期时间格式
- java日期工具类DateUtil-续一
- java中关于时间日期操作的常用函数
- java中关于时间日期操作的常用函数
- java中关于时间日期操作的常用函数
- java中关于时间日期操作的常用函数
- java中关于时间日期操作的常用函数
- 积累的操作时间的工具类dateutil
- java中关于时间日期操作的常用函数
- 在JDBC操作中关于java.util.Date跟java.sql.Date之间的转换问题
- java中关于时间日期操作的常用函数
- java中关于时间日期操作的常用函数
- java.util.Date_与_java.sql.Date互转_及_字符串转换为日期时间格式
- java中关于时间日期操作的常用函数