日期处理类-DateUtils.java
来源:互联网 发布:eval解析json字符串 编辑:程序博客网 时间:2024/05/16 11:57
/* *File:DateUtils.java *@version: 1.0 *Date:2014-03-14 */import java.text.DateFormat;import java.text.ParseException;import java.text.SimpleDateFormat;import java.util.Calendar;import java.util.Date;/** * 时间工具类 * * @author Administrator * @since 1.0 */public class DateUtils { private static final long serialVersionUID = 440525605745656148L; private static SimpleDateFormat sdf = new SimpleDateFormat(); public static final String PATTERN_YYYY_MM_DD = "yyyy-MM-dd"; public static final String PATTERN_YYYY_MM = "yyyy-MM"; public static final String PATTERN_YYYY_MM_DD_HH_MM_SS = "yyyy-MM-dd hh:mm:ss"; public static final String PATTERN_TIMESTAMP = "yyyyMMddHHmmssSSS"; /** * 以指定时间格式将Date转String * * @param date 日期 * @param pattern 格式 * @return 指定格式的时间字符串 */ public static synchronized String getDateFormat(Date date, String pattern) { if (date == null) { return ""; } synchronized (sdf) { String str = null; sdf.applyPattern(pattern); str = sdf.format(date); return str; } } /** * 以并指定时间格式将String转Date * * @param strDate * @param pattern * @return */ public static synchronized Date parseDateFormat(String strDate, String pattern) { synchronized (sdf) { Date date = null; sdf.applyPattern(pattern); try { date = sdf.parse(strDate); } catch (Exception e) { e.printStackTrace(); } return date; } } /** * 判断两个时间是否相等 * * @param date1 * @param date2 * @return */ public static boolean equalsDate(Date date1, Date date2) { boolean result = false; if ((date1 != null) && (date2 != null) && (date1.equals(date2))) { result = true; } return result; } /** * 判断开始时间是否大于结束时间 * * @param startDate 开始时间 * @param enDate 结束时间 * @return startDate>enDate时返回true */ public static boolean afterDate(Date startDate, Date enDate) { boolean result = false; if ((startDate != null) && (enDate != null) && (startDate.after(enDate))) { result = true; } if (result) { System.err.println("开始日期大于结束日期!"); } return result; } /** * 判断开始日期是否小于结束日期 * * @param startDate 开始日期 * @param enDate 结束日期 * @return startDate<enDate时返回true */ public static boolean beforeDate(Date startDate, Date enDate) { boolean result = false; if ((startDate != null) && (enDate != null)) { if (startDate.before(enDate)) { result = true; return result; } System.err.println("开始日期小于结束日期!"); return result; } return (startDate != null) || (enDate != null); } /** * 以指定格式比较两个时间大小 * * @param start 开始时间 * @param end 结束时间 * @param pattern 时间格式 * @return 0:start=end,1:start>end,-1:start<end * @throws ParseException */ public static int compareDateWithoutTime(Date start, Date end, String pattern) throws ParseException { SimpleDateFormat fmt = new SimpleDateFormat(pattern); String startDateStr = fmt.format(start); String endDateStr = fmt.format(end); Date startDate = fmt.parse(startDateStr); Date endDate = fmt.parse(endDateStr); return startDate.compareTo(endDate); } /** * 获取指定日期的指定下一个日期 <br>例如传参为【20130827 13:59:00 213, -2】得出的结果为【20130825 * 13:59:00 213】 * * @param date 传参时间 * @param index 下一个时间(天) * @return 计算得出的时间 */ public static Date getNextDate(Date date, int index) { Calendar calendar = Calendar.getInstance(); calendar.setTime(date); calendar.add(5, index); return calendar.getTime(); } /** * 获取指定年度、指定月份的最大日期或者最小日期 <br>例如传参为【2013,8, 0】得出的结果为【2013-08-31】 * <br>例如传参为【2013,8, 1】得出的结果为【2013-08-1】 * * @param year 指定年 * @param month 指定月份 * @param type (1)开始日期还是(0)结束日期 * @return 计算得出的时间 */ public static Date getMonthLastDay(int year, int month, int type) { Calendar calendar = Calendar.getInstance(); if (type == 1) { if (month == 1) { year -= 1; month = 12; } else { month -= 1; } } calendar.set(year, month, 1); calendar.set(5, type); Date date = new Date(calendar.getTimeInMillis()); SimpleDateFormat format = new SimpleDateFormat(PATTERN_YYYY_MM_DD); String newTime = format.format(date); try { return new SimpleDateFormat(PATTERN_YYYY_MM_DD).parse(newTime); } catch (ParseException ex) { ex.printStackTrace(); } return null; } /** * 获取毫秒级时间戳 17位 * * @param date 时间 * @return 时间戳 */ public static String getTimeStamp(Date date) { if (null == date) { return ""; } String timeStampString = getDateFormat(date, PATTERN_TIMESTAMP); return timeStampString; } /** * 将时间戳转化为时间对象 * * @param timeStamp 时间戳字符串 * @return 时间date */ public static Date getDateByString(String timeStamp) { if (timeStamp == null || "".equals(timeStamp)) { return new Date(); } DateFormat df = new SimpleDateFormat(PATTERN_TIMESTAMP); Date date; try { date = df.parse(timeStamp); } catch (ParseException ex) { date = new Date(); } return date; }}
0 0
- 日期处理类-DateUtils.java
- DateUtils.java 日期处理相关工具类
- Java日期处理工具类DateUtils
- JAVA的dateutils处理类
- 日期工具类DateUtils
- 日期工具类DateUtils
- DateUtils日期工具类
- 日期工具类DateUtils
- 日期工具类DateUtils
- DateUtils 日期工具类
- 日期操作类DateUtils
- 日期工具类DateUtils
- DateUtils 日期工具类
- java时间处理工具类--DateUtils
- 日期处理类 org.apache.commons.lang3.time.DateUtils
- [Java 常用类库]:DateUtils(严格日期转换通用类)
- javaScript日期工具类DateUtils
- delphi时间日期处理DateUtils时间单元
- viewpager+fragment 如何管理fragment
- JQuery里的原型prototype分析
- awk里面执行shell命令
- 贵阳市开展经济普查登记执法检查
- 去数字之间的空格
- 日期处理类-DateUtils.java
- 何时重建索引_1
- Create a new user
- HDU 1079 Calendar Game(博弈)
- Object C学习笔记13-Dictionary
- UITextField 常用操作
- 人生不过一场梦
- IOS 7 Xcode 5 免IDP证书 真机调试
- 关于 MySQL LEFT JOIN 你可能需要了解的三点