- 浏览: 131741 次
- 性别:
- 来自: 福建
文章分类
- 全部博客 (105)
- 数据库 (4)
- hibernate (4)
- css3 (2)
- 前端设计 (13)
- struts (6)
- HTML5 (1)
- jQuery (16)
- JDBC (3)
- spring (6)
- 娱乐 (1)
- MyEclipse (2)
- oracle (4)
- javascript (10)
- ibatis (2)
- log4j (1)
- css (16)
- java (13)
- IText (1)
- IDE (1)
- C3P0 (1)
- ssi (1)
- IO (1)
- jsp (1)
- JSTL (1)
- JXL (1)
- ssh (1)
- ajax (2)
- struts2 (1)
- html (1)
- 正则表达式 (1)
- 非技术 (1)
- Properties (1)
- Tomcat (1)
- 电大 (0)
- test (0)
最新评论
-
yejq:
收藏~~
使用 Ctrl + Enter 提交表单
封装了DateUtil方法
/** * all rights reserved by zhanqiong, 2005 */ package com.koubei.util; import java.text.DateFormat; import java.text.ParseException; import java.text.SimpleDateFormat; import java.util.ArrayList; import java.util.Calendar; import java.util.Date; import java.util.List; /** * @author chen * */ public class DateUtil { /** * 日 */ public final static int INTERVAL_DAY = 1; /** * 周 */ public final static int INTERVAL_WEEK = 2; /** * 月 */ public final static int INTERVAL_MONTH = 3; /** * 年 */ public final static int INTERVAL_YEAR = 4; /** * 小时 */ public final static int INTERVAL_HOUR = 5; /** * 分钟 */ public final static int INTERVAL_MINUTE = 6; /** * 秒 */ public final static int INTERVAL_SECOND = 7; /** * date = 1901-01-01 */ public final static Date tempDate=new Date(new Long("-2177481952000"));; /** * 测试是否是当天 * * @param date - 某一日期 * @return true-今天, false-不是 */ @SuppressWarnings("deprecation") public static boolean isToday(Date date) { Date now = new Date(); boolean result = true; result &= date.getYear()==now.getYear(); result &= date.getMonth()==now.getMonth(); result &= date.getDate()==now.getDate(); return result; } /** * 两个日期相减,取天数 * * @param date1 * @param date2 * @return */ public static long DaysBetween(Date date1, Date date2) { if (date2 == null) date2 = new Date(); long day = (date2.getTime() - date1.getTime()) / (24 * 60 * 60 * 1000); return day; } /** * 比较两个日期 if date1<=date2 return true * * @param date1 * @param date2 * @return */ public static boolean compareDate(String date1, String date2) { SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd"); try { Date d1 = format.parse(date1); Date d2 = format.parse(date2); return !d1.after(d2); } catch (ParseException e) { e.printStackTrace(); return false; } } /** * 字符型转换成日期型 * * @param date * @param dateFormat * @return */ public static Date dateFormat(String date, String dateFormat) { if (date == null) return null; SimpleDateFormat format = new SimpleDateFormat(dateFormat); if (date != null) { try { return format.parse(date); } catch (Exception ex) { } } return null; } /** * 使用默认格式 yyyy-MM-dd HH:mm:ss * @author Robin Chang * @param date * @return */ public static Date dateFormat(String date) { return dateFormat(date,"yyyy-MM-dd HH:mm:ss"); } /** * 日期型转换成字符串 * * @param date * @param dateFormat * @return */ public static String dateFormat(Date date, String dateFormat) { if (date == null) return ""; SimpleDateFormat format = new SimpleDateFormat(dateFormat); if (date != null) { return format.format(date); } return ""; } /** * 由于生日增加保密属性,现决定1900为保密对应值,如果遇到1900的年份,则隐掉年份 * * @param date * @param dateFormat * @return 不保密显示1981-12-01保密则显示`12-01 */ public static String birthdayFormat(Date date) { if (date == null) return ""; SimpleDateFormat format = null; if(date.before(tempDate)) { format = new SimpleDateFormat("MM-dd"); }else { format = new SimpleDateFormat("yyyy-MM-dd"); } if (date != null) { return format.format(date); } return ""; } /** * 使用默认格式 yyyy-MM-dd HH:mm:ss * @param date * @return */ public static String dateFormat(Date date) { return dateFormat(date,"yyyy-MM-dd HH:mm:ss"); } public static boolean isExpiredDay(Date date1) { long day = (new Date().getTime() - date1.getTime()) / (24 * 60 * 60 * 1000); if (day >= 1) return true; else return false; } public static Date getYesterday() { Date date = new Date(); long time = (date.getTime() / 1000) - 60 * 60 * 24; date.setTime(time * 1000); SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd"); try { date = format.parse(format.format(date)); } catch (Exception ex) { System.out.println(ex.getMessage()); } return date; } public static Date getWeekAgo() { Date date = new Date(); long time = (date.getTime() / 1000) - 7 * 60 * 60 * 24; date.setTime(time * 1000); SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd"); try { date = format.parse(format.format(date)); } catch (Exception ex) { System.out.println(ex.getMessage()); } return date; } public static String getDaysAgo(int interval) { Date date = new Date(); long time = (date.getTime() / 1000) - interval * 60 * 60 * 24; date.setTime(time * 1000); SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd"); try { return format.format(date); } catch (Exception ex) { System.out.println(ex.getMessage()); } return ""; } public static Date getTomorrow() { Date date = new Date(); long time = (date.getTime() / 1000) + 60 * 60 * 24; date.setTime(time * 1000); SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd"); try { date = format.parse(format.format(date)); } catch (Exception ex) { System.out.println(ex.getMessage()); } return date; } public static Date getBeforeDate(String range) { Calendar today = Calendar.getInstance(); if ("week".equalsIgnoreCase(range)) today.add(Calendar.WEEK_OF_MONTH, -1); else if ("month".equalsIgnoreCase(range)) today.add(Calendar.MONTH, -1); else today.clear(); return today.getTime(); } public static Date getThisWeekStartTime() { Calendar today = Calendar.getInstance(); today.set(Calendar.DAY_OF_WEEK, today.getFirstDayOfWeek()); Calendar weekFirstDay = Calendar.getInstance(); weekFirstDay.clear(); weekFirstDay.set(Calendar.YEAR, today.get(Calendar.YEAR)); weekFirstDay.set(Calendar.MONTH, today.get(Calendar.MONTH)); weekFirstDay.set(Calendar.DATE, today.get(Calendar.DATE)); return weekFirstDay.getTime(); } public static String getToday(String format) { String result = ""; try { Date today = new Date(); SimpleDateFormat simpleFormat = new SimpleDateFormat(format); result = simpleFormat.format(today); } catch (Exception e) { } return result; } public static Date getStartDay(int year, int month) { Calendar today = Calendar.getInstance(); today.clear(); today.set(Calendar.YEAR, year); today.set(Calendar.MONTH, month - 1); today.set(Calendar.DAY_OF_MONTH, 1); return today.getTime(); } public static List<Integer> getBeforeYearList(int before) { Calendar today = Calendar.getInstance(); int theYear = today.get(Calendar.YEAR); List<Integer> list = new ArrayList<Integer>(); for (int i = before; i >= 0; i--) list.add(theYear - i); return list; } /** * 增加时间 * @param interval [INTERVAL_DAY,INTERVAL_WEEK,INTERVAL_MONTH,INTERVAL_YEAR,INTERVAL_HOUR,INTERVAL_MINUTE] * @param date * @param n 可以为负数 * @return */ public static Date dateAdd(int interval,Date date,int n) { long time = (date.getTime() / 1000); //单位秒 switch(interval) { case INTERVAL_DAY: time = time + n * 86400;//60 * 60 * 24; break; case INTERVAL_WEEK: time = time + n * 604800;//60 * 60 * 24 * 7; break; case INTERVAL_MONTH: time = time + n * 2678400;//60 * 60 * 24 * 31; break; case INTERVAL_YEAR: time = time + n * 31536000;//60 * 60 * 24 * 365; break; case INTERVAL_HOUR: time = time + n * 3600;//60 * 60 ; break; case INTERVAL_MINUTE: time = time + n * 60; break; case INTERVAL_SECOND: time = time + n; break; default: } Date result = new Date(); result.setTime(time * 1000); return result; } /** * 计算两个时间间隔 * @param interval [INTERVAL_DAY,INTERVAL_WEEK,INTERVAL_MONTH,INTERVAL_YEAR,INTERVAL_HOUR,INTERVAL_MINUTE] * @param begin * @param end * @return */ public static int dateDiff(int interval,Date begin,Date end) { long beginTime = (begin.getTime() / 1000); //单位:秒 long endTime = (end.getTime() / 1000); //单位: 秒 long tmp = 0; if (endTime == beginTime) { return 0; } //确定endTime 大于 beginTime 结束时间秒数 大于 开始时间秒数 if (endTime < beginTime) { tmp = beginTime; beginTime = endTime; endTime = tmp; } long intervalTime = endTime - beginTime; long result = 0; switch(interval) { case INTERVAL_DAY: result = intervalTime / 86400;//60 * 60 * 24; break; case INTERVAL_WEEK: result = intervalTime / 604800;//60 * 60 * 24 * 7; break; case INTERVAL_MONTH: result = intervalTime / 2678400;//60 * 60 * 24 * 31; break; case INTERVAL_YEAR: result = intervalTime / 31536000;//60 * 60 * 24 * 365; break; case INTERVAL_HOUR: result = intervalTime / 3600;//60 * 60 ; break; case INTERVAL_MINUTE: result = intervalTime / 60; break; case INTERVAL_SECOND: result = intervalTime / 1; break; default: } //做过交换 if (tmp > 0) { result = 0 - result; } return (int) result; } /** * 当前年份 * @return */ public static int getTodayYear() { int yyyy = Integer.parseInt(dateFormat(new Date(),"yyyy")); return yyyy; } public static Date getNow() { return new Date(); } /** * 把日期格式为rss格式兼容的字符串 * @param date * @return */ public static String dateFormatRss(Date date) { if (date != null) { return dateFormat(date,"E, d MMM yyyy H:mm:ss") + " GMT"; } return ""; } /** * 判断当前日期是否在两个日期之间 * @param startDate 开始时间 * @param endDate 结束时间 * @return */ public static boolean betweenStartDateAndEndDate(Date startDate,Date endDate){ boolean bool=false; Date curDate=new Date(); if (curDate.after(startDate) && curDate.before(DateUtil.dateAdd( INTERVAL_DAY ,endDate,1)) ){ bool=true; } return bool; } /** * 判断当前时间是否在在两个时间之间 * @param startDate 开始时间 * @param endDate 结束时间 * @return */ public static boolean nowDateBetweenStartDateAndEndDate(Date startDate,Date endDate){ boolean bool=false; Date curDate=new Date(); if (curDate.after(startDate) && curDate.before(endDate)){ bool=true; } return bool; } /** * 判断当前时间是否在date之后 * @param date * @return */ public static boolean nowDateAfterDate(Date date){ boolean bool=false; Date curDate=new Date(); if (curDate.after(date)){ bool=true; } return bool; } /** * 判断二个日期相隔的天数,结束时间为null时,,取当前时间 * @param startDate 开始时间 * @param endDate 结束时间 * @return */ public static int getBetweenTodaysStartDateAndEndDate(Date startDate,Date endDate){ int betweentoday = 0; if(startDate==null){ return betweentoday; } if(endDate==null){ Calendar calendar = Calendar.getInstance(); String year = new Integer(calendar.get(Calendar.YEAR)).toString(); String month = new Integer((calendar.get(calendar.MONTH)+1)).toString(); String day = new Integer(calendar.get(calendar.DAY_OF_MONTH)).toString(); String strtodaytime = year+"-"+month+"-"+day; DateFormat formatter=new SimpleDateFormat("yyyy-MM-dd"); try { endDate = formatter.parse(strtodaytime); } catch (ParseException e) { //TODO Auto-generated catch block e.printStackTrace(); } } if(endDate.after(startDate)){ betweentoday = (int)((endDate.getTime() -startDate.getTime())/86400000); }else{ betweentoday = (int)((startDate.getTime() -endDate.getTime())/86400000); } return betweentoday; } /** * 取得指定长度日期时间字符串{不含格式} @param format 时间格式由常量决定 8: YYMMDDHH 8位 10: YYMMDDHHmm 10位 12: YYMMDDHHmmss 12位 14: YYYYMMDDHHmmss 14位 15: YYMMDDHHmmssxxx 15位 (最后的xxx 是毫秒) */ public static String getTime(int format){ StringBuffer cTime=new StringBuffer(10); Calendar time=Calendar.getInstance(); int miltime=time.get(Calendar.MILLISECOND); int second=time.get(Calendar.SECOND); int minute=time.get(Calendar.MINUTE); int hour=time.get(Calendar.HOUR_OF_DAY); int day =time.get(Calendar.DAY_OF_MONTH); int month=time.get(Calendar.MONTH)+1; int year =time.get(Calendar.YEAR); if(format!=14){ if(year>=2000) year=year-2000; else year=year-1900; } if(format>=2){ if(format==14) cTime.append(year); else cTime.append(getFormatTime(year,2)); } if(format>=4) cTime.append(getFormatTime(month,2)); if(format>=6) cTime.append(getFormatTime(day,2)); if(format>=8) cTime.append(getFormatTime(hour,2)); if(format>=10) cTime.append(getFormatTime(minute,2)); if(format>=12) cTime.append(getFormatTime(second,2)); if(format>=15) cTime.append(getFormatTime(miltime,3)); return cTime.toString(); } /** * 产生任意位的字符串 * @param time 要转换格式的时间 * @param format 转换的格式 * @return String 转换的时间 */ private static String getFormatTime(int time,int format){ StringBuffer numm=new StringBuffer(); int length=String.valueOf(time).length(); if(format<length) return null; for(int i=0 ;i<format-length ;i++){ numm.append("0"); } numm.append(time); return numm.toString().trim(); } /** * 根据生日去用户年龄 * @param birthday * @return int * @exception * @author 豆皮 * @Date Apr 24, 2008 */ public static int getUserAge(Date birthday){ if(birthday == null) return 0; Calendar cal = Calendar.getInstance(); if(cal.before(birthday)) { return 0; } int yearNow = cal.get(Calendar.YEAR); cal.setTime(birthday);// 给时间赋值 int yearBirth = cal.get(Calendar.YEAR); return yearNow - yearBirth; } /** * 将int型时间(1970年至今的秒数)转换成Date型时间 * @param unixTime 1970年至今的秒数 * @return * @author 郑卿 */ public static Date getDateByUnixTime(int unixTime){ return new Date(unixTime*1000L); } /** * 将Date型时间转换成int型时间(1970年至今的秒数) * @param unixTime 1970年至今的秒数 * @return * @author 郑卿 */ public static int getUnixTimeByDate(Date date){ return (int)(date.getTime()/1000); } public static void main(String[] args) { Date date1 =dateFormat("1981-01-01 00:00:00"); Date date2 =dateFormat("1900-12-31 00:00:00"); System.out.println(birthdayFormat(date1)); System.out.println(birthdayFormat(date2)); } public static Date getNextDay(Date date) { long time = (date.getTime() / 1000) + 60 * 60 * 24; date.setTime(time * 1000); SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd"); try { date = format.parse(format.format(date)); } catch (Exception ex) { System.out.println(ex.getMessage()); } return date; } /** * @param date * @return * 复制新Date,不改变参数 */ public static Date nextDay(Date date) { Date newDate = (Date) date.clone(); long time = (newDate.getTime() / 1000) + 60 * 60 * 24; newDate.setTime(time * 1000); SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd"); try { newDate = format.parse(format.format(newDate)); } catch (Exception ex) { System.out.println(ex.getMessage()); } return newDate; } @SuppressWarnings("unused") public static Date getNowTime() { SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); Date date = new Date(); String dateStr = dateFormat(date); try { date = format.parse(dateStr); } catch (ParseException e) { e.printStackTrace(); } return date; } public static Date getTomorrow(Date date1) { // 创建当前时间对象 Calendar now = Calendar.getInstance(); now.setTime(date1); // 日期[+1]day now.add(Calendar.DATE, 1); return now.getTime(); } public static Date getWeekAgo(Date date) { Date newDate = (Date) date.clone(); long time = (newDate.getTime() / 1000) - 60 * 60 * 24 * 7; newDate.setTime(time * 1000); SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd"); try { newDate = format.parse(format.format(newDate)); } catch (Exception ex) { System.out.println(ex.getMessage()); } return newDate; } public static Date getDatebyTime(Date date, int n) { String str = DateUtil.dateFormat(date, "yyyy-MM-dd"); String[] strs = str.split("-"); int month = Integer.parseInt(strs[1]); int monthnow = (month + n) % 12; int year = Integer.parseInt(strs[0]) + (month + n) / 12; str = String.valueOf(year) + "-" + String.valueOf(monthnow) + "-" + strs[2]; return DateUtil.dateFormat(str, "yyyy-MM-dd"); } /** * @param date * @return * 复制新Date,不改变参数 */ public static Date yesterday(Date date) { Date newDate = (Date) date.clone(); long time = (newDate.getTime() / 1000) - 60 * 60 * 24; newDate.setTime(time * 1000); SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd"); try { newDate = format.parse(format.format(newDate)); } catch (Exception ex) { System.out.println(ex.getMessage()); } return newDate; } public static Date getYesterday(Date date) { long time = (date.getTime() / 1000) - 60 * 60 * 24; date.setTime(time * 1000); SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd"); try { date = format.parse(format.format(date)); } catch (Exception ex) { System.out.println(ex.getMessage()); } return date; } private static SimpleDateFormat format = null; @SuppressWarnings("unused") public static String getStringNowTime() { format = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); Date date = new Date(); String dateStr = dateFormat(date); return dateStr; } /** * 指定时间的秒数 * 指定时间零点的秒数加指定天数的秒数 * @param time 时间 * @param range 天 * @return */ public static long getSpecifyTimeSec(long time,int range){ Date date = new Date((time*1000+(23-Calendar.ZONE_OFFSET)*3600000)/86400000*86400000-(23-Calendar.ZONE_OFFSET)*3600000); long zeroTime = date.getTime()/1000; long specifyTime = range * 24 * 3600; return (zeroTime+specifyTime); } /** * 将int型时间(1970年至今的秒数)转换成指定格式的时间 * * @param unixTime 1970年至今的秒数 * @param dateFormat 时间格式 * @return * @author sky */ public static String formatDateByUnixTime(long unixTime, String dateFormat){ return dateFormat(new Date(unixTime*1000), dateFormat); } }
发表评论
-
java日期格式化工具类
2013-12-24 17:26 1850\ /** * 日期工具类 * 默认使用 &quo ... -
Java文件操作详解
2012-07-02 15:38 948Java文件操作详解 ... -
从web.xml中获取我们需要的参数
2012-05-25 17:37 2214从web.xml中获取我们需要的参数【转载】 1、在w ... -
调用Oracle中的存储过程
2012-04-10 15:30 682调用Oracle中的存储过程 /** 首先在数 ... -
封装了StringUtil
2012-04-10 15:24 826封装了StringUtil /** * al ... -
Java读取Properties文件的六种方法
2012-03-26 17:22 1504Java读取Properties文件的六种方法【转载】 ... -
Java的身份证号码工具类
2012-04-24 11:23 868Java的身份证号码工具类 ... -
最简洁的九九乘法表代码
2012-04-24 11:23 1445package common; public cl ... -
java的几种验证
2012-03-22 11:01 891java的几种验证 package com.cn. ... -
FileUtil
2012-03-22 09:21 882package com.koubei.util; ... -
Java实现的ZIP解压缩工具类
2012-03-22 09:19 1209Java实现的ZIP解压缩工具类 package c ... -
POI 实现Excel 导入导出
2012-03-05 15:40 1387POI 实现Excel 导入导出【转载】 自己到apa ...
相关推荐
总之,`DateUtil`是一个非常实用的工具类,它封装了常见的日期处理功能,提高了代码的可读性和可维护性。了解并熟练使用这样的工具类对于Java开发者来说是至关重要的,因为它可以极大地提升开发效率。
综上所述,`DateUtil`通用类是Java开发中一个非常实用的工具,它封装了日期时间操作的各种常见需求,使得代码更加简洁,提高了开发效率。通过阅读`dateUtil.txt`文件,我们可以进一步了解这个类的具体实现和更多细节...
`DateUtil` 类通常是一个自定义的工具类,封装了对Java内置`java.util.Date`、`java.time` 包或`java.text.SimpleDateFormat` 类的高级操作,以提供更方便、更灵活的日期格式化和解析功能。`DateFormat` 可能是`...
DateUtil工具类可能包含了对这些新API的封装,以便在旧项目中也能方便使用。 2. **日期格式化** 日期格式化是将日期时间对象转化为可读字符串的过程,通常通过`SimpleDateFormat`类实现。例如,我们可以创建一个`...
在实际开发中,由于Java 8之前的`java.util.Date`和`java.util.Calendar` API设计复杂,不够友好,因此开发者往往会自定义类似DateUtil这样的工具类来封装常见的日期操作。 `DateUtil`类可能会包含以下功能: 1. *...
本文将深入探讨与“时间的处理封装方法”相关的知识点,主要围绕Python语言进行,因为Python提供了丰富的库和工具来方便我们处理时间。 首先,Python中的内置`time`模块是处理时间的基础,它包含了多种与时间相关的...
此类封装了常用的日期格式化字符串,并提供了一些静态方法来简化日期时间的操作。 #### 二、核心功能 1. **日期格式化**:`DateUtil`通过不同的格式化模式(如`yyyy-MM-dd HH:mm:ss`)将日期对象转换为指定格式的...
下面是一些`DateUtil`工具类可能包含的方法及其说明: 1. `formatDate(Date date, String pattern)`: 这个方法接收一个`Date`对象和一个日期格式字符串,然后使用`SimpleDateFormat`将其格式化为字符串。例如,`...
1. **DateUtil**: Java中的日期时间处理在早期版本中较为复杂,`DateUtil` 类通常是为了封装`java.util.Date`、`Calendar` 和 `java.time` 包中的类,提供方便的日期时间操作。例如,获取当前日期、格式化日期字符串...
这个"封装了常用的日期格式工具类"提供了便捷的方法来处理这些需求,使得开发者无需深入了解Java的日期API就能高效地工作。 `DateUtil`和`VeDate`这两个类可能是为了解决以下问题而设计的: 1. **日期格式化**:在...
由于Python 2与Python 3在语法和API上有较大差异,six提供了一种简便的方法来编写跨版本的代码,确保代码在两个版本上都能正常运行。它包含了对不同版本Python的常见差异的封装,如print函数、异常处理和迭代器等。 ...
自己写得日期格式化操作类,有问题请反馈,谢谢!
2. **日期时间工具类(DateUtil)**:在Java中,日期和时间操作往往比较复杂,这类工具类会提供方便的方法来解析、格式化日期,进行日期的加减操作等。例如`parse()`用于将字符串转换为日期对象,`format()`则可将日期...
SquiDB 是 Android 平台下 SQLite 数据库的封装层。简化了 SQlite 数据库的操作,合并了类型安全对象和面向对象 SQL 语句处理。示例代码:long ageCutoff = System.currentTimeMillis() - (DateUtil.YEAR_IN_...
2. 创建日期选择对话框:调用Dateutil提供的静态方法,例如`showDatePicker(Context context, DatePickerDialog.OnDateSetListener listener)`,传入上下文和日期选择监听器。 3. 处理日期选择:在OnDateSetListener...
在validCanCheckIn方法中,首先通过jwtUtil.getUserId(token)方法获取当前用户的ID,然后通过checkinService.validCanCheckIn(userId, DateUtil.today())方法检查用户今天是否可以签到。最后,该方法将检查结果返回...
总结,`DateUtil`类是一个实用的日期处理工具类,它封装了常见的日期转换操作,简化了Android开发中的日期处理工作,提高了代码的可读性和效率。在实际项目中,可以根据需求扩展此类,添加更多定制化的日期处理方法...