package com.wq.common.util;
import java.sql.Timestamp;
import java.text.DateFormat;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Collection;
import java.util.Date;
import org.apache.commons.lang3.time.DateFormatUtils;
import org.apache.commons.lang3.time.DateUtils;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
/**
*
* 类说明: 日期工具类.
*
* 类用途:提供日期操作的各种方法
*
* <pre>
* 修改日期 修改人 修改原因
* 2013-04-13 qingwu 新建
* </pre>
*/
public class DateUtil {
private final static Logger logger = LoggerFactory
.getLogger(DateUtil.class);
/**
* 默认的日期格式,yyyy-MM-dd.
*/
public static final String ISO_DATE_FORMAT = "yyyy-MM-dd";
/**
* 数字格式的日期格式,yyyyMMdd.
*/
public static final String NUMBER_DATE_FORMAT = "yyyyMMdd";
/**
* 数字格式的时间字符串,HHmmss.
*/
public static final String NUMBER_TIME_FORMAT = "HHmmss";
/**
* 数字格式的日期时间字符串, yyyyMMddHHmmss.
*/
public static final String NUMBER_DATE_TIME_FORMAT = "yyyyMMddHHmmss";
/**
* 默认的日期时间格式,yyyy-MM-dd' 'HH:mm:ss.
*/
public static final String ISO_DATE_TIME_FORMAT = "yyyy-MM-dd' 'HH:mm:ss";
/**
*
* 转换日期格式.
*
* @param date
* 字符型的日期
* @param oldFormat
* 原始的日期格式
* @param newFormat
* 新的日期格式
* @return 新的日期字符串
*
* <pre>
* 修改日期 修改人 修改原因
* 2010-12-20 新建
* </pre>
*/
public static String transformDateFormat(String date, String oldFormat,
String newFormat) {
if (date == null) {
return null;
}
Date tempDate = parseDate(date, oldFormat);
return formatDate(tempDate, newFormat);
}
/**
*
* 解析日期,以默认日期格式yyyy-MM-dd进行解析.<br>
* 相关方法:{@link #parseDate(String, String)}
*
* @param stringDate
* 日期字符串
* @return 日期对象
*
* <pre>
* 修改日期 修改人 修改原因
* 2010-11-15 新建
* 2010-12-07 修改注释和注释格式
* </pre>
*
*/
public static Date parseDate(String stringDate) {
return parseDate(stringDate, ISO_DATE_FORMAT);
}
/**
*
* 解析日期,根据指定的格式进行解析.<br>
* 如果解析错误,则返回null
*
* @param stringDate
* 日期字符串
* @param format
* 日期格式
* @return 日期类型
*
* <pre>
* 修改日期 修改人 修改原因
* 2010-11-15 整理
* 2010-12-07 修改注释和注释格式
* </pre>
*
*/
public static Date parseDate(String stringDate, String format) {
if (stringDate == null) {
return null;
}
try {
return DateUtils.parseDate(stringDate, new String[] { format });
} catch (ParseException e) {
logger.error("解析日期异常[" + stringDate + ":" + format + "]", e);
}
return null;
}
/**
*
* 解析日期,以所指定的日期格式集合进行解析.<br>
* <p>
* <li>如果满足其中一个日期格式,解析并且返回<br>
* <li>如果没解析成功或者解析错误,则返回null
* </p>
*
* @param stringDate
* 日期字符串
* @param formates
* 日期格式的集合
* @return 日期类型
*
* <pre>
* 修改日期 修改人 修改原因
* 2010-11-15 整理
* </pre>
*
*/
public static Date parseDate(String stringDate, Collection<String> formates) {
if (formates == null || formates.size() == 0) {
throw new IllegalStateException("Date format not set.");
}
try {
return DateUtils.parseDate(stringDate,
formates.toArray(new String[formates.size()]));
} catch (Exception e) {
logger.error("日期解析错误", e);
}
return null;
}
/**
*
* 以默认的格式"yyyy-MM-dd"格式化日期.
*
* @param srcDate
* 源日期
* @return 格式化后的日期字符串
*
* <pre>
* 修改日期 修改人 修改原因
* 2010-11-15 整理
* </pre>
*
*/
public static String formatDate(Date srcDate) {
return formatDate(srcDate, ISO_DATE_FORMAT);
}
/**
* 以指定的格式格式化日期.
*
* @param srcDate
* 源日期
* @param pattern
* 格式
* @return 格式化的日期字符串
*
* <pre>
* 修改日期 修改人 修改原因
* 2010-11-15 新建
* </pre>
*
*/
public static String formatDate(Date srcDate, String pattern) {
if (srcDate == null) {
return null;
}
return DateFormatUtils.format(srcDate, pattern);
}
/**
* 格式化time获得指定格式的字符串.
*
* @param time
* 时间
* @param pattern
* 格式
* @return 格式化后的字符串
* @author zhufu
* @version 2013年10月18日 上午9:40:01
*/
private static String formatDate(long time, String pattern) {
return DateFormatUtils.format(time, pattern);
}
/**
* 格式化date获得yyyyMMddHHmmss格式的字符串.
*
* @param date
* 时间
* @return 格式化后的字符串
* @author zhufu
* @version 2013年10月18日 上午9:41:42
*/
public static String formatDateyyyyMMddHHmmss(Date date) {
return formatDate(date, NUMBER_DATE_TIME_FORMAT);
}
/**
* 格式化time获得yyyyMMddHHmmss格式的字符串.
*
* @param time
* 时间
* @return 格式化后的字符串
* @author zhufu
* @version 2013年10月18日 上午9:42:25
*/
public static String formatDateyyyyMMddHHmmss(long time) {
return formatDate(time, NUMBER_DATE_TIME_FORMAT);
}
/**
* 为指定日期添加N天.
*
* @param date
* 指定日期
* @param amount
* 增加天数
* @return 计算后的日期
*
* <pre>
* 修改日期 修改人 修改原因
* 2010-11-15 新建
* </pre>
*/
public static Date addDays(Date date, int amount) {
return DateUtils.addDays(date, amount);
}
/**
* 为指定日期添加N月.
*
* @param date
* 指定日期
* @param amount
* 增加月数
* @return 计算后的日期
*
* <pre>
* 修改日期 修改人 修改原因
* 2010-11-15 新建
* </pre>
*/
public static Date addMonths(Date date, int amount) {
return DateUtils.addMonths(date, amount);
}
/**
* 为指定日期添加N周.
*
* @param date
* 指定日期
* @param amount
* 增加周数
* @return 计算后的日期
*
* <pre>
* 修改日期 修改人 修改原因
* 2010-11-15 新建
* </pre>
*/
public static Date addWeeks(Date date, int amount) {
return DateUtils.addWeeks(date, amount);
}
/**
* 为指定日期添加N年.
*
* @param date
* 指定日期
* @param amount
* 增加年数
* @return 计算后的日期
*
* <pre>
* 修改日期 修改人 修改原因
* 2010-11-15 新建
* </pre>
*/
public static Date addYears(Date date, int amount) {
return DateUtils.addYears(date, amount);
}
/**
* 为指定日期添加N小时.
*
* @param date
* 指定日期
* @param amount
* 增加小时数
* @return 计算后的日期
*
* <pre>
* 修改日期 修改人 修改原因
* 2010-11-15 整理
* </pre>
*/
public static Date
没有合适的资源?快使用搜索试试~ 我知道了~
springMVC+freemarker框架
共77个文件
java:28个
class:28个
xml:8个
4星 · 超过85%的资源 需积分: 10 297 下载量 32 浏览量
2014-03-21
12:15:20
上传
评论 1
收藏 77KB RAR 举报
温馨提示
springMVC+freemarker框架demo,有兴趣的可以下载看看
资源推荐
资源详情
资源评论
收起资源包目录
demo.rar (77个子文件)
demo
.project 1KB
pom.xml 4KB
target
test-classes
m2e-wtp
web-resources
META-INF
maven
com.wq
demo
pom.xml 4KB
pom.properties 200B
MANIFEST.MF 107B
classes
applicationContext-freemarker.xml 3KB
applicationContext-springMVC.xml 3KB
com
wq
dao
ctrl
TestCtrl.class 2KB
dto
TestDTO.class 1KB
common
web
GlobalExceptionHandler.class 4KB
WebContext.class 3KB
Response.class 3KB
ResponseFactory.class 2KB
InitWebContentFilter.class 2KB
springmvc
WebFreeMarkerView.class 1KB
MappingJackson2HttpMessageConverter.class 8KB
BindingInitializer.class 1KB
editor
HtmlFilterLongEditor.class 1KB
HtmlFilterDoubleEditor.class 1KB
CustomTimestampEditor.class 3KB
StringEditor.class 1KB
HtmlFilterEditor.class 1KB
HtmlFilterStringEditor.class 1KB
HtmlFilterIntegerEditor.class 1KB
CustomTimestampSerializer.class 2KB
JsonDateFormat.class 697B
WildcardMVCController.class 2KB
util
UnCaughtException.class 756B
ValueUtil.class 2KB
ObjectUtil.class 9KB
DateUtil.class 6KB
ClassUtil.class 2KB
StringUtil.class 5KB
PropertiesUtil.class 1KB
Jackson2Util.class 3KB
po
service
.settings
.jsdtscope 575B
org.eclipse.core.resources.prefs 191B
org.eclipse.wst.common.component 744B
org.eclipse.jdt.core.prefs 430B
org.eclipse.wst.common.project.facet.core.xml 252B
org.eclipse.wst.jsdt.ui.superType.container 49B
org.eclipse.m2e.core.prefs 90B
org.eclipse.wst.jsdt.ui.superType.name 6B
src
test
resources
java
main
resources
applicationContext-freemarker.xml 3KB
applicationContext-springMVC.xml 3KB
java
com
wq
dao
ctrl
TestCtrl.java 1KB
dto
TestDTO.java 1KB
common
web
WebContext.java 4KB
ResponseFactory.java 2KB
InitWebContentFilter.java 1KB
GlobalExceptionHandler.java 3KB
Response.java 2KB
springmvc
BindingInitializer.java 1KB
WebFreeMarkerView.java 526B
MappingJackson2HttpMessageConverter.java 9KB
WildcardMVCController.java 2KB
editor
CustomTimestampSerializer.java 947B
JsonDateFormat.java 575B
HtmlFilterIntegerEditor.java 699B
HtmlFilterDoubleEditor.java 697B
HtmlFilterLongEditor.java 693B
StringEditor.java 607B
CustomTimestampEditor.java 3KB
HtmlFilterEditor.java 772B
HtmlFilterStringEditor.java 697B
util
UnCaughtException.java 521B
ValueUtil.java 3KB
ClassUtil.java 1KB
StringUtil.java 6KB
ObjectUtil.java 11KB
PropertiesUtil.java 998B
Jackson2Util.java 3KB
DateUtil.java 14KB
po
service
webapp
WEB-INF
web.xml 3KB
index.jsp 52B
freemarker
ftl
test
index.ftl 179B
.classpath 1KB
共 77 条
- 1
wq105032007067
- 粉丝: 19
- 资源: 3
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- 基于SpringBoot+Vue3快速开发平台、自研工作流引擎源码设计.zip
- docker安装部署全流程
- 基于树莓派的人脸识别系统python源码+项目部署说明+超详细代码注释.zip
- Python和R爬取分析赶集网北京二手房数据.zip
- Python和R爬取分析赶集网北京二手房数据.zip
- Java知识体系最强总结(2021版).txt
- Python知识点Python知识点Python知识点Python知识点Python知识点PythonPython知识点.txt
- Java开发基于seetaface6的人脸识别(活体检测)的封装源码.zip
- JSP在线失物招领管理平台源码.zip
- JSP在线旅游美食展现管理系统源码.zip
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功
- 1
- 2
- 3
- 4
- 5
- 6
前往页