Java日期工具类DateUtils详解与实例

2 下载量 154 浏览量 更新于2024-09-01 收藏 66KB PDF 举报
"Java日期工具类DateUtils的实例解析与常用方法" 在Java开发中,日期处理是一项常见的任务,DateUtils工具类可以帮助我们更便捷地进行日期和时间的操作。本篇将详细介绍DateUtils类的一些常见实例和方法,以便在实际项目开发中能够快速有效地处理日期相关问题。 首先,DateUtils类定义了一些常量,用于表示不同的日期格式。例如: - `DATE_FORMAT_FULL`:全格式日期时间,"yyyy-MM-dd HH:mm:ss" - `DATE_FORMAT_YMD`:年月日格式,"yyyy-MM-dd" - `DATE_FORMAT_HMS`:时分秒格式,"HH:mm:ss" - `DATE_FORMAT_HM`:时分格式,"HH:mm" - `DATE_FORMAT_YMDHM`:年月日时分格式,"yyyy-MM-dd HH:mm" - `DATE_FORMAT_YMDHMS`:年月日时分秒格式,"yyyyMMddHHmmss" - `ONE_DAY_MILLS`:一天的毫秒数,即24小时乘以3600000(每小时的毫秒数) - `WEEK_DAYS`:一周的天数,7天 - `dateLength`:日期时间格式字符串的长度,根据`DATE_FORMAT_YMDHM`计算得出 DateUtils类中包含的主要方法之一是`formatDateToString`,它将日期对象转换为指定格式的字符串。这个方法接受两个参数,一个是`Date`对象,另一个是日期格式字符串。它使用`SimpleDateFormat`类进行格式化: ```java public static String formatDateToString(Date time, String format) { SimpleDateFormat sdf = new SimpleDateFormat(format); return sdf.format(time); } ``` 此方法创建一个`SimpleDateFormat`实例,然后使用该实例的`format`方法将日期对象转换为对应的字符串。 此外,DateUtils类可能还包含其他实用方法,例如获取当前日期、日期加减操作、日期比较等。例如,可能有一个`addDays`方法,用于在给定日期上增加或减少天数: ```java public static Date addDays(Date date, int days) { Calendar calendar = Calendar.getInstance(); calendar.setTime(date); calendar.add(Calendar.DAY_OF_MONTH, days); return calendar.getTime(); } ``` 这个方法通过`Calendar`类对日期进行修改,然后返回新的`Date`对象。 DateUtils类封装了与日期相关的各种常用操作,提供了一种简洁的方式来处理日期和时间。在实际编程中,我们可以根据需要扩展此类,添加更多自定义的日期处理功能。
2013-06-30 上传
package com.bdvcd.utils; import java.text.ParseException; import java.text.SimpleDateFormat; import java.util.Date; import java.util.TimeZone; /** * 文件名:DateUtils.java 日期处理相关工具类 * 版本信息:V1.0 * 日期:2013-03-11 * Copyright BDVCD Corporation 2013 * 版权所有 http://www.bdvcd.com */ public class DateUtils { /**定义常量**/ public static final String DATE_JFP_STR="yyyyMM"; public static final String DATE_FULL_STR = "yyyy-MM-dd HH:mm:ss"; public static final String DATE_SMALL_STR = "yyyy-MM-dd"; public static final String DATE_KEY_STR = "yyMMddHHmmss"; /** * 使用预设格式提取字符串日期 * @param strDate 日期字符串 * @return */ public static Date parse(String strDate) { return parse(strDate,DATE_FULL_STR); } /** * 使用用户格式提取字符串日期 * @param strDate 日期字符串 * @param pattern 日期格式 * @return */ public static Date parse(String strDate, String pattern) { SimpleDateFormat df = new SimpleDateFormat(pattern); try { return df.parse(strDate); } catch (ParseException e) { e.printStackTrace(); return null; } } /** * 两个时间比较 * @param date * @return */ public static int compareDateWithNow(Date date1){ Date date2 = new Date(); int rnum =date1.compareTo(date2); return rnum; } /** * 两个时间比较(时间戳比较) * @param date * @return */ public static int compareDateWithNow(long date1){ long date2 = dateToUnixTimestamp(); if(date1>date2){ return 1; }else if(date1<date2){ return -1; }else{ return 0; } } /** * 获取系统当前时间 * @return */ public static String getNowTime() { SimpleDateFormat df = new SimpleDateFormat(DATE_FULL_STR); return df.format(new Date()); } /** * 获取系统当前时间 * @return */ public static String getNowTime(String type) { SimpleDateFormat df = new SimpleDateFormat(type); return df.format(new Date()); } /** * 获取系统当前计费期 * @return */ public static String getJFPTime() { SimpleDateFormat df = new SimpleDateFormat(DATE_JFP_STR); return df.format(new Date()); } /** * 将指定的日期转换成Unix时间戳 * @param String date 需要转换的日期 yyyy-MM-dd HH:mm:ss * @return long 时间戳 */ public static long dateToUnixTimestamp(String date) { long timestamp = 0; try { timestamp = new SimpleDateFormat(DATE_FULL_STR).parse(date).getTime(); } catch (ParseException e) { e.printStackTrace(); } return timestamp; } /** * 将指定的日期转换成Unix时间戳 * @param String date 需要转换的日期 yyyy-MM-dd * @return long 时间戳 */ public static long dateToUnixTimestamp(String date, String dateFormat) { long timestamp = 0; try { timestamp = new SimpleDateFormat(dateFormat).parse(date).getTime(); } catch (ParseException e) { e.printStackTrace(); } return timestamp; } /** * 将当前日期转换成Unix时间戳 * @return long 时间戳 */ public static long dateToUnixTimestamp() { long timestamp = new Date().getTime(); return timestamp; } /** * 将Unix时间戳转换成日期 * @param long timestamp 时间戳 * @return String 日期字符串 */ public static String unixTimestampToDate(long timestamp) { SimpleDateFormat sd = new SimpleDateFormat(DATE_FULL_STR); sd.setTimeZone(TimeZone.getTimeZone("GMT+8")); return sd.format(new Date(timestamp)); } }