java处理⽇期的⼯具类DateUtil java中处理⽇期的⼯具类DateUtil,供⼤家参考,具体内容如下
package com.hertest;
import org.slf4j.LoggerFactory;
import java.sql.Timestamp;
DateFormat;
ParseException;
SimpleDateFormat;
import java.util.Calendar;
import java.util.Date;
import java.util.GregorianCalendar;
import java.util.logging.Logger;
/
**
* 时间⼯具类
*/
public final class DateUtil {
private static Logger logger = (Logger) Logger(DateUtil.class);
/**
* ⽇期格式
*/
public interface DATE_PATTERN {
String HHMMSS = "HHmmss";
String HH_MM_SS = "HH:mm:ss";
String HH_MM = "HH:mm";
String YYYY = "yyyy";
String YYYYMMDD = "yyyyMMdd";
String YYYYMM = "yyyyMM";
String YYYY_MM_DD = "yyyy-MM-dd";
String YYYYMMDDHHMMSS = "yyyyMMddHHmmss";
String YYYYMMDDHHMMSSSSS = "yyyyMMddHHmmssSSS";
String YYYY_MM_DD_HH_MM_SS = "yyyy-MM-dd HH:mm:ss";
}
/**
* 获取当前时间
*
* @return Timestamp对象
*/
public static Timestamp getCurrontTime() {
Timestamp sqlTimestamp = new Timestamp(new Date().getTime());
return sqlTimestamp;
}
/**
* 将Date类型转换成String类型
*
* @param date Date对象
* @return 形如:"yyyy-MM-dd HH:mm:ss"
*/
public static String date2String(Date date) {
return date2String(date, DATE_PATTERN.YYYY_MM_DD_HH_MM_SS);
}
/**
* 将Date按格式转化成String
*
* @param date Date对象
* @param pattern ⽇期类型
* @return String
*/
public static String date2String(Date date, String pattern) {
if (date == null || pattern == null) {
return null;
}
return new SimpleDateFormat(pattern).format(date);
}
/**
* 将String类型转换成Date类型
*
* @param date Date对象
* @return
*/
public static Date string2Date(String date) {
SimpleDateFormat format = new SimpleDateFormat(DATE_PATTERN.YYYY_MM_DD_HH_MM_SS); try {
return format.parse(date);
} catch (ParseException e) {
return null;
}
}
/**
* 获取某⽇期N天后的⽇期
*
* @param datestr
* @param day
* @return
*/
public static Date getBeforeAfterDate(String datestr, int day) {
SimpleDateFormat df = new SimpleDateFormat(DATE_PATTERN.YYYY_MM_DD_HH_MM_SS);
java.sql.Date olddate = null;
try {
df.setLenient(false);
olddate = new java.sql.Date(df.parse(datestr).getTime());
} catch (ParseException e) {
throw new RuntimeException("⽇期转换错误");
}
Calendar cal = new GregorianCalendar();
cal.setTime(olddate);
int Year = (Calendar.YEAR);
int Month = (Calendar.MONTH);
int Day = (Calendar.DAY_OF_MONTH);
int NewDay = Day + day;
cal.set(Calendar.YEAR, Year);
cal.set(Calendar.MONTH, Month);
cal.set(Calendar.DAY_OF_MONTH, NewDay);
return new TimeInMillis());
}
/**
* @return
* @Description: 获取当前⽇期的前⼀天
* @ReturnType String
* @author: liyl
* @Created 2015年11⽉13⽇下午5:11:14
*/
public static Date currentBeforeDay() {
Calendar calendar = Instance();
calendar.setTime(new Date());
calendar.add(Calendar.DAY_OF_MONTH, -1);
Time();
}
/**
* @return
* @Description: 获取当前⽇期的后⼀天
* @ReturnType Date
* @author: liyl
* @Created 2015年11⽉13⽇下午5:14:54
*/
public static Date currentNextDay() {
Calendar calendar = Instance();
calendar.setTime(new Date());
calendar.add(Calendar.DAY_OF_MONTH, 1);
Time();
}
/**
* 获取指定⽇期星期⼏(int)
*
* @param dt
* @return
*/
public static int getWeekOfInt(Date dt) {
int[] weekDays = {7, 1, 2, 3, 4, 5, 6};
Calendar cal = Instance();
cal.setTime(dt);
int w = (Calendar.DAY_OF_WEEK) - 1;
if (w < 0) {
w = 0;
}
return weekDays[w];
}
/**
* 获取指定⽇期星期⼏
*
* @param dt
* @return
*/
public static String getWeekOfDate(Date dt) {
String[] weekDays = {"星期⽇", "星期⼀", "星期⼆", "星期三", "星期四", "星期五", "星期六"}; Calendar cal = Instance();
cal.setTime(dt);
int w = (Calendar.DAY_OF_WEEK) - 1;
if (w < 0) {
w = 0;
}
return weekDays[w];
}
/**
* 时间⽐⼤⼩
*
* @param DATE1
* @param DATE2
* @param pattern
* @return
*/
public static int compareDate(String DATE1, String DATE2, String pattern) {
DateFormat df = new SimpleDateFormat(pattern);
try {
Date dt1 = df.parse(DATE1);
Date dt2 = df.parse(DATE2);
if (Time() > Time()) {
System.out.println("dt1 在dt2前");
return 1;
} else if (Time() < Time()) {
System.out.println("dt1在dt2后");
return -1;
} else {
return 0;
}
} catch (Exception exception) {
exception.printStackTrace();
}
return 0;
}
/**
* 在⼀个时间上加上或减去分钟
*
* @param date long
* @param i int
* @return Date
*/
public static Date addOrMinusMinutes(Date date, int i) {
Date rtn = null;
GregorianCalendar cal = new GregorianCalendar();
cal.setTime(date);
cal.add(GregorianCalendar.MINUTE, i);
rtn = Time();
return rtn;
}
/**
* 按照指定格式返回格式好的当前⽇期
*
* @param dateFormat 默认yyyy-MM-dd
* @return
*/
public static String getCurrentDateString(String dateFormat) {
return DateUtil.format(new Date(), DATE_PATTERN.YYYY_MM_DD);
}
/**
* 说明将⽇期格式化字符串,为null的返回空字符串
*
* @param date
* @return
*/
public static String format(Date date) {
if (null == date) return "";
SimpleDateFormat sf = new SimpleDateFormat(DATE_PATTERN.YYYY_MM_DD);
return sf.format(date);
}
/**
* 说明将⽇期格式化字符串,为null的返回空字符串
*
* @param date ⽇期
* @param dateFormat 格式化字符串,⽐如:yyyy-MM-dd
* @return
*/
public static String format(Date date, String dateFormat) {
if (null == dateFormat || "".equals(dateFormat)) return DateUtil.format(date);
if (null == date) return "";
SimpleDateFormat sf = new SimpleDateFormat(dateFormat);
return sf.format(date);
}
/**
* @param source 要进⾏解析的源字符串
* @return
* @说明将指定的字符串格解析成⽇期类型,格式默认为:yyyy-MM-dd
*/
public static Date parase(String source) {
SimpleDateFormat sf = new SimpleDateFormat(DATE_PATTERN.YYYY_MM_DD);
try {
return sf.parse(source);
} catch (ParseException e) {
e.printStackTrace();
}
return null;
}
/**
* @param source 要进⾏解析的源字符串
* @param dateFormat 要解析的⽇期格式。
* @return
* @说明将指定的字符串格解析成⽇期类型例:如果⽇期source=20131210,则dateFormat应为:yyyyMMdd,两个应对应 */
public static Date parase(String source, String dateFormat) {
SimpleDateFormat sf = new SimpleDateFormat(dateFormat);
try {
return sf.parse(source);
} catch (ParseException e) {
e.printStackTrace();
}
return null;
}
/**
* @param date
* @param days
* @说明对指定的⽇期增加或减少指定的天数
*/
public static Date addDays(Date date, int days) {
Calendar cal = Instance();
cal.setTime(date);
cal.add(Calendar.DAY_OF_MONTH, days);
Time();
}
/**
* @param date
* @param days
* @说明对指定的⽇期增加或减少指定的天数
*/
public static Calendar addDays(Calendar date, int days) {
date.add(Calendar.DAY_OF_MONTH, days);
return date;
}
/**
* @param date
* @param months
* @return
* @说明对指定的⽇期增加或减少指定的⽉数
*/
public static Date addMonths(Date date, int months) {
Calendar cal = Instance();
cal.setTime(date);
cal.add(Calendar.MONTH, months);
Time();
}
/**
* @param date
* @param months
* @return
* @说明对指定的⽇期增加或减少指定的⽉数
*/
public static Calendar addMonths(Calendar date, int months) { date.add(Calendar.MONTH, months);
return date;
}
/**
* @param date
* @param hours
* @return
* @说明对指定的⽇期增加或减少指定的⼩时数
*/
public static Date addHours(Date date, int hours) {
Calendar cal = Instance();
cal.setTime(date);
cal.add(Calendar.HOUR_OF_DAY, hours);
Time();
}
/**
* 对指定的⽇期增加或减少指定的⼩时数
*
* @param date
java时间日期格式转换
* @param hours
* @return
*/
public static Calendar addHours(Calendar date, int hours) {
date.add(Calendar.HOUR_OF_DAY, hours);
return date;
}
/**
* 以字符串形式返回当前时间的毫秒数
*
* @return
*/
public static String getTimeMillions() {
Calendar cal = Instance();
long lt = TimeInMillis();
return String.valueOf(lt);
}
/**
* 获取当前⽉的第⼀天
*
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论