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个
需积分: 13 10 下载量 53 浏览量
2017-11-08
10:07:26
上传
评论
收藏 77KB RAR 举报
温馨提示
FreeMarker 是一款模板引擎:一种基于模板的、用来生成输出文本(任何来自于 HTML 格式的文本用来自动生成源代码)的通用工具。它是为 Java 程序员提供的一个开发包或者说是类库。它不是面向最终用户,而是为程序员提供的可以嵌入他们开发产品的一款应用程序。
资源推荐
资源详情
资源评论
收起资源包目录
springMVC+freemarker框架.rar (77个子文件)
demo
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
com
wq
ctrl
TestCtrl.class 2KB
dao
po
dto
TestDTO.class 1KB
common
web
GlobalExceptionHandler.class 4KB
ResponseFactory.class 2KB
InitWebContentFilter.class 2KB
springmvc
WildcardMVCController.class 2KB
WebFreeMarkerView.class 1KB
editor
HtmlFilterEditor.class 1KB
StringEditor.class 1KB
CustomTimestampSerializer.class 2KB
HtmlFilterIntegerEditor.class 1KB
HtmlFilterDoubleEditor.class 1KB
HtmlFilterLongEditor.class 1KB
CustomTimestampEditor.class 3KB
JsonDateFormat.class 697B
HtmlFilterStringEditor.class 1KB
MappingJackson2HttpMessageConverter.class 8KB
BindingInitializer.class 1KB
WebContext.class 3KB
Response.class 3KB
util
ObjectUtil.class 9KB
DateUtil.class 6KB
StringUtil.class 5KB
ValueUtil.class 2KB
UnCaughtException.class 756B
PropertiesUtil.class 1KB
Jackson2Util.class 3KB
ClassUtil.class 2KB
service
applicationContext-springMVC.xml 3KB
applicationContext-freemarker.xml 3KB
.settings
org.eclipse.m2e.core.prefs 90B
org.eclipse.wst.jsdt.ui.superType.name 6B
org.eclipse.wst.common.project.facet.core.xml 252B
org.eclipse.core.resources.prefs 191B
org.eclipse.wst.common.component 744B
org.eclipse.wst.jsdt.ui.superType.container 49B
.jsdtscope 575B
org.eclipse.jdt.core.prefs 430B
src
test
resources
java
main
webapp
WEB-INF
web.xml 3KB
freemarker
ftl
test
index.ftl 179B
index.jsp 52B
resources
applicationContext-springMVC.xml 3KB
applicationContext-freemarker.xml 3KB
java
com
wq
ctrl
TestCtrl.java 1KB
dao
po
dto
TestDTO.java 1KB
common
web
ResponseFactory.java 2KB
springmvc
WildcardMVCController.java 2KB
BindingInitializer.java 1KB
MappingJackson2HttpMessageConverter.java 9KB
editor
HtmlFilterLongEditor.java 693B
HtmlFilterEditor.java 772B
HtmlFilterIntegerEditor.java 699B
CustomTimestampSerializer.java 947B
HtmlFilterDoubleEditor.java 697B
CustomTimestampEditor.java 3KB
HtmlFilterStringEditor.java 697B
StringEditor.java 607B
JsonDateFormat.java 575B
WebFreeMarkerView.java 526B
InitWebContentFilter.java 1KB
WebContext.java 4KB
GlobalExceptionHandler.java 3KB
Response.java 2KB
util
PropertiesUtil.java 998B
StringUtil.java 6KB
DateUtil.java 14KB
Jackson2Util.java 3KB
ObjectUtil.java 11KB
UnCaughtException.java 521B
ClassUtil.java 1KB
ValueUtil.java 3KB
service
.project 1KB
.classpath 1KB
共 77 条
- 1
资源评论
ssh918
- 粉丝: 7
- 资源: 10
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功