- 浏览: 36507 次
- 性别:
- 来自: 深圳
文章分类
最新评论
/** * DateUtils.java */ package com.aspire.common.util; import java.math.BigDecimal; import java.text.DateFormat; import java.text.ParseException; import java.text.SimpleDateFormat; import java.util.Calendar; import java.util.Date; import java.util.TimeZone; /** * <p> * Title: 日期操作类 * </p> * <p> * Description: 完成一些对日期的计算工作 * </p> * <p> * Copyright: Copyright (c) 2007 * </p> * <p> * Company: aspire technology * </p> * * @author zengjin * @version 1.0.0.0 * @CheckItem@ NEW-zengjin-20070110-patch001-ADD40 新增 */ public class DateUtils { /** * 显示日期的格式,yyyy-MM-dd */ public static final String DATE_FORMAT = "yyyy-MM-dd"; /** * 显示日期的格式,yyyy-MM-dd HH:mm:ss */ public static final String TIMEF_FORMAT = "yyyy-MM-dd HH:mm:ss"; /** * 显示日期的格式,yyyy年MM月dd日HH时mm分ss秒 */ public static final String ZHCN_TIME_FORMAT = "yyyy年MM月dd日HH时mm分ss秒"; /** * 显示日期的格式,yyyyMMddHHmmss */ public static final String TIME_STR_FORMAT = "yyyyMMddHHmmss"; /** * 显示日期的格式,yyyyMMdd */ public static final String DATE_STR_FORMAT = "yyyyMMdd"; /** * 显示日期的格式,yyyyMMdd */ public static final String DATE_HH_STR_FORMAT = "yyyy-MM-dd-HH"; public static final String DATE_HH_STR_SSS_FORMAT = "yyyy/MM/dd HH:mm:ss:SSS"; /** * DateFormat,格式:yyyy-MM-dd */ private static DateFormat dateFormat; /** * DateFormat,格式:yyyy-MM-dd HH:mm:ss */ private static DateFormat dateTimeFormat; /** * DateFormat,格式:yyyyMMddHHmmss */ private static DateFormat dateTimeStrFormat; /** * DateFormat,格式:yyyy年MM月dd日HH时mm分ss秒 */ private static DateFormat zhcnDateTimeStrFormat; static { dateFormat = new SimpleDateFormat(DATE_FORMAT); dateTimeFormat = new SimpleDateFormat(TIMEF_FORMAT); dateTimeStrFormat = new SimpleDateFormat(TIME_STR_FORMAT); zhcnDateTimeStrFormat = new SimpleDateFormat(ZHCN_TIME_FORMAT); } /** * 获取当前时间在+-n分钟后的字符串时间 * * @param n * int * @return String */ public static String getTimebyMinAfter(int n) { Calendar now = Calendar.getInstance(TimeZone.getDefault()); now.add(Calendar.MINUTE, n); return (dateTimeFormat.format(now.getTime())); } /** * 获取当前时间在+-n秒后的字符串时间 * * @param n * int * @return String */ public static String getTimebySecAfter(int n) { Calendar now = Calendar.getInstance(TimeZone.getDefault()); now.add(Calendar.SECOND, n); return (dateTimeFormat.format(now.getTime())); } /** * 获取定义的DateFormat格式 * * @param formatStr * @return */ private static DateFormat getDateFormat(String formatStr) { if (formatStr.equalsIgnoreCase(DATE_FORMAT)) { return dateFormat; } else if (formatStr.equalsIgnoreCase(TIMEF_FORMAT)) { return dateTimeFormat; } else { return new SimpleDateFormat(formatStr); } } /** * 将Date转换成字符串“yyyy-mm-dd hh:mm:ss”的字符串 * * @param date * 日期 * @return String 字符串 */ public static String dateToDateString(Date date) { return dateToDateString(date, TIMEF_FORMAT); } /** * 将Date转换成formatStr格式的字符串 * * @param date * @param formatStr * @return */ public static String dateToDateString(Date date, String formatStr) { DateFormat df = getDateFormat(formatStr); return df.format(date); } /** * 将小时数换算成返回以毫秒为单位的时间 * * @param hours * @return */ public static long getMicroSec(BigDecimal hours) { BigDecimal bd; bd = hours.multiply(new BigDecimal(3600 * 1000)); return bd.longValue(); } /** * 获取今天的日期,格式自定 * * @param pattern - * 设定显示格式 * @return String - 返回今天的日期 */ public static String getToday(String pattern) { Calendar now = Calendar.getInstance(TimeZone.getDefault()); DateFormat sdf = getDateFormat(pattern); sdf.setTimeZone(TimeZone.getDefault()); return (sdf.format(now.getTime())); } // 得到系统当前的分钟数,如当前时间是上午12:00,系统当前的分钟数就是12*60 public static int getCurrentMinutes() { Calendar now = Calendar.getInstance(TimeZone.getDefault()); int iMin = now.get(Calendar.HOUR_OF_DAY) * 60 + now.get(Calendar.MINUTE); return iMin; } /** * 获取当前日期时间yyyy年MM月dd日HH时mm分ss秒的形式 * * @return 当前日期时间yyyy年MM月dd日HH时mm分ss秒的形式 */ public static String getCurZhCNDateTime() { return dateToDateString(new Date(), ZHCN_TIME_FORMAT); } /** * 获取当前时间 yyyyMMddHHmmss 的格式 * */ public static String getCurTime24(){ return dateToDateString(new Date(),TIME_STR_FORMAT); } /** * @return 得到本月月份 如09 */ public static String getMonth() { Calendar now = Calendar.getInstance(); int month = now.get(Calendar.MONTH) + 1; String monStr = String.valueOf(month); // 对于10月份以下的月份,加"0"在前面 if (month < 10) monStr = "0" + monStr; return monStr; } /** * 根据失效时间判断是否依然有效 * * @param expireTime * 失效时间的字符串形式,格式要求:yyMMddHHmmss * @return true:失效 false:没有失效 * @throws ParseException */ public static boolean isTimeExpired(String expireTime) throws ParseException { boolean ret = false; // SimpleDateFormat不是线程安全的,所以每次调用new一个新的对象 Date date = new SimpleDateFormat(TIME_STR_FORMAT).parse(expireTime); Calendar expire = Calendar.getInstance(); expire.setTime(date); Calendar now = Calendar.getInstance(); // 将毫秒字段设为0,保持精度一致性 now.set(Calendar.MILLISECOND, 0); if (now.after(expire)) { ret = true; } return ret; } /** * 根据开始时间和可用时间计算出失效时间 * * @param startTime * 开始时间 * @param availableTime * 有效时长(单位:秒) * @return 失效时间 * @throws ParseException */ public static String getExpireTimeByCalculate(Date startTime, int availableTime) { Calendar expire = Calendar.getInstance(); // 设置为开始时间 expire.setTime(startTime); // 开始时间向后有效时长秒得到失效时间 expire.add(Calendar.SECOND, availableTime); // 返回失效时间字符串 // SimpleDateFormat不是线程安全的,所以每次调用new一个新的对象 return new SimpleDateFormat(TIME_STR_FORMAT).format(expire.getTime()); } /** * 将Date转换为yyMMddHHmmss的形式 * * @param date * @return 日期的字符串形式,格式:yyMMddHHmmss */ public static String convertDateToString(Date date) { return new SimpleDateFormat(TIME_STR_FORMAT).format(date); } /** * 将yyMMddHHmmss形式的字符串转换成Date的形式 * * @param date * yyMMddHHmmss形式的日期字符串 * @return Date对象 * @throws ParseException */ public static Date convertStringToDate(String date) throws ParseException { return new SimpleDateFormat(TIME_STR_FORMAT).parse(date); } /** * @param date * yyyyMMddHHmmss格式的日期字符转换为yyyy年MM月dd日HH时mm分ss秒格式的字符串 * @return yyyy年MM月dd日HH时mm分ss秒格式的日期字符串 * @throws ParseException */ public static String convertStringToZhCN(String date) throws ParseException { return zhcnDateTimeStrFormat.format(dateTimeStrFormat.parse(date)); } // ### add by xukejun on v1.5.0.0.006 start ### /** * 获取昨日日期 返回格式:yyyy-MM-dd */ public static String getYesterdayDate() { // 获取昨日的日期 Calendar cal = Calendar.getInstance(); cal.add(Calendar.DAY_OF_MONTH, -1); Date yesterday = cal.getTime(); return new SimpleDateFormat(DATE_FORMAT).format(yesterday); } // ### add by xukejun on v1.5.0.0.006 end ### /** * @param dateString yyyy/MM/dd HH:mm:ss * @return * @throws ParseException */ public static String convertStringToString(String dateString) throws ParseException{ SimpleDateFormat sdf=new SimpleDateFormat("yyyy/MM/dd HH:mm:ss"); Date date = sdf.parse(dateString); return convertDateToString(date); } /** * 将yyMMddHHmmss形式的字符串转换成Date的形式 * * @param date * yyMMddHHmmss形式的日期字符串 * @return Date对象 * @throws ParseException */ public static Date convertStringToDate(String date,String formatString) throws ParseException { return new SimpleDateFormat(formatString).parse(date); } /** * 获得延迟后的日期 * @param src(基于日期) * @param count(延迟数) * @param type(延迟类型:Y--年;M--月;D--天;H--小时) * @return * @author x_shengqiang * @date 2010-1-4 */ public static Date getDelayDate(Date src,int count,String type)throws ParseException{ Calendar cal=Calendar.getInstance(); cal.setTime(src); if("Y".equals(type)){ cal.add(Calendar.YEAR, count); }else if("M".equals(type)){ cal.add(Calendar.MONTH, count); }else if("D".equals(type)){ cal.add(Calendar.DATE, count); }else if("H".equals(type)){ cal.add(Calendar.HOUR, count); } return new SimpleDateFormat(DATE_FORMAT).parse((new SimpleDateFormat(DATE_FORMAT).format(cal.getTime()))); } /** * 获取月份第一天 * @param src * @return * @author x_shengqiang * @date 2010-1-4 */ public static Date getMonthFirstDate(Date src)throws ParseException{ Calendar cal=Calendar.getInstance(); cal.setTime(src); cal.set(Calendar.DATE, 1); return new SimpleDateFormat(DATE_FORMAT).parse((new SimpleDateFormat(DATE_FORMAT).format(cal.getTime()))); } /** * 获取月份最后一天 * @param src * @return * @author x_shengqiang * @date 2010-1-4 */ public static Date getLastDayOfMonth(Date date) { Calendar cal = Calendar.getInstance(); cal.setTime(date); cal.set(Calendar.DAY_OF_MONTH, 1); cal.roll(Calendar.DAY_OF_MONTH, -1); return cal.getTime(); } /** * 获得yyyy-MM-dd格式的日期 * @param src * @param pattern * @return * @author x_shengqiang * @date 2010-1-5 */ public static Date getPatternDate(String src)throws ParseException{ return new SimpleDateFormat(DATE_FORMAT).parse(src); } }
发表评论
-
poi docx 字符,图片替换
2015-12-31 10:20 1952项目中遇到 word动态替换参数,及图片的问题、总结一下 m ... -
java
2015-11-03 11:24 340转: http://blog.csdn.net/zgmzyr/ ... -
java log 异常 堆栈信息打印
2013-06-25 16:48 1322StringWriter errors = new ... -
log4j.properties
2012-11-13 09:11 0log4j 配置 #\u8bbe\u7f6e\u7 ... -
SSH2搭建基本jar包
2012-11-12 14:16 0SSH2搭建基本jar包 博客 ... -
Struts2、spring工作原理
2012-11-22 11:37 1138Struts2,spring工作原理 ... -
hibernate配置文件hibernate.cfg.xml的详细解释
2012-10-26 11:10 0<!--标准的XML文件的起始行,version=' ... -
tomcat 远程调试
2012-11-22 11:37 765-------------------- tomcat 远程调 ... -
EXT 4.0 图表
2012-02-17 17:43 984function search_Top() { ... -
myeclipse9.0安装svn(测试100%通过)
2011-11-10 10:50 756为什么标题要写100%通过呢?原因是以前的方法(直接复制到pl ... -
Hessian
2011-11-04 11:11 769Hessian是一个轻量级的remoting onhtt ... -
Struts2 表单 提交 POJO 方法_转
2011-10-21 11:07 1149在Struts2.0里面有一个非常牛*的功能就是支持更高 ... -
Job 基于spring简单实例
2011-09-15 15:13 7321、需要导入的jar 包 commons-logging-1 ...
相关推荐
《Date Util——深入解析日期工具类》 在Java编程中,日期和时间处理是不可或缺的一部分。"Date Util" 指的是一种常见的日期处理工具类,它提供了方便的方法来操作和格式化日期。本篇文章将深入探讨这个工具类,...
java中util.date和sql.date的类型转换问题.帮助大家很完善的了解关于java日期类型和数据库日期类型转换的问题,很值得拥有.
在这个项目中,我们关注的是"Date Util"和"String Util",它们是Java编程中非常重要的两个工具类。 Date Util主要涉及日期和时间的处理。在Java中,日期和时间的处理最初是通过`java.util.Date`和`java.text....
java_sql_Date与java_util_Date转换
本文将详细介绍如何将`java.util.Date`对象转换为`java.sql.Date`对象,这对于那些需要将日期值存储到数据库中的应用程序来说至关重要。 ### 标题:util包里的Date类转换为sql包里的Date #### 了解util包里的Date...
升级版DateUtil.java 得到几天后的date,根据农历生日计算出年龄,判断当前时间是否在[startTime, endTime]区间,注意时间格式要一致
### Java.util.Date到JSON日期转换详解 在Java中处理日期并将其转换为JSON格式是常见的需求,尤其是在进行网络传输或存储操作时。本篇文章将详细介绍如何将`java.util.Date`对象转换为符合特定格式的JSON字符串,...
JS日期工具类,方便大家的使用。后期会持续更新.......
### Java.util.Date与Java.sql.Date互转及字符串转换为日期时间格式 #### 一、Java.util.Date与Java.sql.Date的基本概念 在Java编程语言中,处理日期和时间时经常使用到`java.util.Date`和`java.sql.Date`这两个类...
包含"yyyy-MM-dd"、"yyyy-MM-dd HH:mm:ss"、"yyyyMMdd"、"yyyyMMddHHmmss"、"yyyy-MM"、...4.Date转String dateToString(Date date, String format); 5.Timestamp转String timestampToString(Timestamp ts)..... 等等
### Java.util.Date与Java.sql.Date相互转换 #### 知识点概述 在Java开发中,经常需要处理日期和时间相关的操作。Java标准库提供了两个重要的日期类:`java.util.Date` 和 `java.sql.Date`。虽然它们名字相似,但...
`js-date-util` 是一个专为JavaScript设计的日期处理库,它提供了丰富的功能,帮助开发者在JavaScript环境中更方便地操作和格式化日期。这个库特别适用于那些需要在前端或者Node.js环境中进行复杂日期计算和格式化的...
`PKG_DATE_UTIL.zip_PKG DATE_pkg date_日期处理`这个压缩包提供了一个专门用于日期处理的工具,名为`PKG_DATE_UTIL`。下面将详细阐述这个工具的主要功能及其在实际应用中的价值。 首先,`PKG_DATE_UTIL`主要关注的...
Java.sql.Date与Java.util.Date的区别和转换 Java.util.Date和Java.sql.Date是Java中两种不同的日期和时间表示方式,虽然它们都是表示日期和时间,但是它们之间存在着一些重要的区别。 首先,Java.util.Date是Java...