概述
最近发现我们项目里的对日期时间操作的工具类DateUtil感觉挺好用的,现在就总结一下,便于日后查看。
/**
* 利用指定SimpleDateFormat instance转换java.util.Date到String
*
* @param dt
* java.util.Date instance
* @param formatter
* SimpleDateFormat Instance
* @return String
*/
private static String toString(java.util.Date dt, SimpleDateFormat formatter) {
String sRet = null;
try {
if (dt == null)
sRet = "";
else
sRet = formatter.format(dt).toString();
} catch (Exception e) {
// e.printStackTrace();
log.error("", e);
sRet = null;
}
return sRet;
}
-----------------------------------------------------------------------------------------------------------
System.out.println(toString(new java.util.Date(),new SimpleDateFormat("yyyyMMddHHmmss")));
输出:20130204145224
-----------------------------------------------------------------------------------------------------------
/**
* 日期转换为字符串
*
* @param date
* @param formatString
* @return
*/
public static String date2String(java.util.Date date, String formatString) {
if (date == null || formatString == null || "".equals(formatString)) {
return "";
}
String result = "";
try {
SimpleDateFormat formt = new SimpleDateFormat(formatString);
result = formt.format(date);
} catch (Exception e) {
result = "";
log.error("---date2String---", e);
}
return result;
}
-----------------------------------------------------------------------------------------------------------
System.out.println(date2String(new java.util.Date(),"yyyy-MM-dd HH:mm:ss"));
输出:2013-02-04 14:55:27
-----------------------------------------------------------------------------------------------------------
/**
* 利用指定SimpleDateFormat instance转化String到Date
*
* @param sDate
* Date string
* @param formatter
* SimpleDateFormat instance
* @return Date
*/
private static java.util.Date toDate(String sDate,
SimpleDateFormat formatter) {
java.util.Date dt = null;
if (sDate == null || "".equals(sDate))
return null;
try {
dt = formatter.parse(sDate);
} catch (Exception e) {
// e.printStackTrace();
log.error("", e);
dt = null;
}
return dt;
}
-----------------------------------------------------------------------------------------------------------
System.out.println(toDate("2013-02-01", new SimpleDateFormat("yyyy-MM-dd")));
System.out.println(date2String(toDate("2013-02-01", new SimpleDateFormat("yyyy-MM-dd")),"yyyyMMddHHmmss"));
输出:Fri Feb 01 00:00:00 CST 2013
20130201000000
-----------------------------------------------------------------------------------------------------------
public static java.util.Date stringToDate(String stringDate, String format) {
try {
if (stringDate == null || "".equals(stringDate)) {
stringDate = DateUtil.getSysDateString();
}
java.util.Date date = new SimpleDateFormat(format)
.parse(stringDate);
return date;
} catch (Exception e) {
// e.printStackTrace();
log.error("", e);
}
return null;
}
-----------------------------------------------------------------------------------------------------------
System.out.println(stringToDate("20130201170854","yyyyMMddHHmmss"));
输出:Fri Feb 01 17:08:54 CST 2013
-----------------------------------------------------------------------------------------------------------
/**
* 时间加年
*
* @param date
* @param year
* @return
*/
public static java.util.Date addYear(java.util.Date date, int year) {
Calendar c1 = Calendar.getInstance();
c1.setTime(date);
c1.add(Calendar.YEAR, year);
return c1.getTime();
}
-----------------------------------------------------------------------------------------------------------
date1 = new SimpleDateFormat("yyyy-MM-dd").parse("2007-03-02");
System.out.println(DateUtil.toString(addYear(date1, -1),new SimpleDateFormat(“yyyy-MM-dd HH:mm”)));
输出:2006-03-02 00:00
-----------------------------------------------------------------------------------------------------------
/**
* 时间加月
*
* @param date
* @param month
* @return
*/
public static java.util.Date addMonth(java.util.Date date, int month) {
Calendar c1 = Calendar.getInstance();
c1.setTime(date);
c1.add(Calendar.MONTH, month);
return c1.getTime();
}
-----------------------------------------------------------------------------------------------------------
date1 = new SimpleDateFormat("yyyy-MM-dd").parse("2007-03-02");
System.out.println(DateUtil.toString(addMonth(date1, 4),new SimpleDateFormat(“yyyy-MM-dd”)));
输出:2007-07-02
-----------------------------------------------------------------------------------------------------------
/**
* 在java.util.DateObject上增加/减少几天
*
* @param date
* java.util.Date instance
* @param days
* 增加/减少的天数
* @return java.util.Date Object
*/
public static java.util.Date addDays(java.util.Date date, int days) {
long temp = date.getTime();
return new java.util.Date(temp + DateUtil.DAY_MILLI * days);
}
-----------------------------------------------------------------------------------------------------------
date1 = new SimpleDateFormat("yyyy-MM-dd").parse("2007-03-02");
System.out.println(DateUtil.toString(addDays(date1, 7),new SimpleDateFormat(“yyyy-MM-dd”)));
输出:2007-03-09
-----------------------------------------------------------------------------------------------------------
public static java.util.Date addHour(java.util.Date date, int hour) {
Calendar c1 = Calendar.getInstance();
c1.setTime(date);
c1.add(Calendar.HOUR, hour);
return c1.getTime();
}
-----------------------------------------------------------------------------------------------------------
date1 = new SimpleDateFormat("yyyy-MM-dd").parse("2007-03-02");
System.out.println(DateUtil.toString(addHour(date1, 7),new SimpleDateFormat(“yyyy-MM-dd HH:mm”)));
输出:2007-03-02 02:00
-----------------------------------------------------------------------------------------------------------
/**
* 两个日期之间相差多少月
*
* @param begin
* java.util.Date instance
* @param end
* java.util.Date instance
* @return int
*/
public static int getPassMonths(java.util.Date begin, java.util.Date end) {
Calendar c1 = Calendar.getInstance();
c1.setTime(begin);
Calendar c2 = Calendar.getInstance();
c2.setTime(end);
int years = 12 * (c2.get(Calendar.YEAR) - c1.get(Calendar.YEAR));
int months = c2.get(Calendar.MONTH) - c1.get(Calendar.MONTH);
int days = c2.get(Calendar.DATE) - c1.get(Calendar.DATE);
if (days <= 0) {
if (years == 0 && months == 0) {
return 1;
} else {
return years + months;
}
} else {
if (years == 0 && months == 0) {
return 1;
} else {
return years + months + 1;
}
}
}
-----------------------------------------------------------------------------------------------------------
date1 = new SimpleDateFormat("yyyy-MM-dd").parse("2007-03-02");
date2 = new SimpleDateFormat("yyyy-MM-dd").parse("2008-05-01");
System.out.println(getPassMonths(date1,date2));
输出:14
-----------------------------------------------------------------------------------------------------------
/**
* 判断两个时间是否为同一时间
*
* @param date1
* @param date2
* @param formatString
* @return
*/
public static boolean isSameDate(java.util.Date date1,
java.util.Date date2, String formatString) {
boolean result = false;
try {
SimpleDateFormat formt1 = new SimpleDateFormat(formatString);
String str1 = formt1.format(date1);
String str2 = formt1.format(date2);
if (str1 == null || str2 == null) {
return false;
}
if (str1.equals(str2)) {
result = true;
}
} catch (Exception e) {
result = false;
log.error("---isSameDate---", e);
}
return result;
}
-----------------------------------------------------------------------------------------------------------
date1 = new SimpleDateFormat("yyyy-MM-dd HH:mm").parse("2008-05-01 12:23");
date2 = new SimpleDateFormat("yyyy-MM-dd").parse("2008-05-01");
System.out.println(isSameDate(date1,date2,"yyyy-MM-dd"));
输出:true
-----------------------------------------------------------------------------------------------------------
/**
* 获得指定日期的前一天
*
* @param Day
* @return
*/
public static java.sql.Date getDayBefore(java.util.Date date) {
Calendar c = Calendar.getInstance();
c.setTime(date);
int nday = c.get(Calendar.DATE);
c.set(Calendar.DATE, nday - 1);
java.util.Date d = (java.util.Date) c.getTime();
java.sql.Date sqlDate = new java.sql.Date(d.getTime());
return sqlDate;
}
-----------------------------------------------------------------------------------------------------------
date1 = new SimpleDateFormat("yyyy-MM-dd HH:mm").parse("2008-05-01 12:23");
date2 = new SimpleDateFormat("yyyy-MM-dd").parse("2008-05-01");
System.out.println(getDayBefore(date1));
输出:2008-04-30
-----------------------------------------------------------------------------------------------------------
/**
* util.date 转换为 sql.date
*
* @return
*/
public static java.sql.Date dateChange(java.util.Date date) {
java.sql.Date sqlDate = new java.sql.Date(date.getTime());
return sqlDate;
}
-----------------------------------------------------------------------------------------------------------
System.out.println(new java.util.Date());
System.out.println(dateChange(new java.util.Date()));
输出:Mon Feb 04 15:19:50 CST 2013
2013-02-04
-----------------------------------------------------------------------------------------------------------
最后
以上就是沉静天空为你收集整理的关于日期时间操作工具类DateUtil(一)-----对java.util.Date 的操作.的全部内容,希望文章能够帮你解决关于日期时间操作工具类DateUtil(一)-----对java.util.Date 的操作.所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复