常用的一些关于日期的方法都在里面,自己封装的一个日期工具类
import java.sql.Timestamp;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Date;
public class DateUtils extends org.apache.commons.lang.time.DateUtils{
public static SimpleDateFormat sdfYYYYMMDDHHMMSS = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
public static SimpleDateFormat sdfYYYYMMDD = new SimpleDateFormat("yyyy-MM-dd");
public static SimpleDateFormat sdfyyyymmdd = new SimpleDateFormat("yyyyMMdd");
private static Long seqence;
/**
* 查询
*
* @param date
* @return
*/
public static String getCurrentDateString(Date date) {
return sdfYYYYMMDD.format(date);
}
/**
* 得到年
*
* @param c
* @return
*/
public static int getYear(Calendar c) {
if (c != null) {
return c.get(Calendar.YEAR);
}
else {
return Calendar.getInstance().get(Calendar.YEAR);
}
}
/**
* 得到月份 注意,这里的月份依然是从0开始的
*
* @param c
* @return
*/
public static int getMonth(Calendar c) {
if (c != null) {
return c.get(Calendar.MONTH);
}
else {
return Calendar.getInstance().get(Calendar.MONTH);
}
}
/**
* 得到日期
*
* @param c
* @return
*/
public static int getDate(Calendar c) {
if (c != null) {
return c.get(Calendar.DATE);
}
else {
return Calendar.getInstance().get(Calendar.DATE);
}
}
/**
* 得到星期
*
* @param c
* @return
*/
public static int getDay(Calendar c) {
if (c != null) {
return c.get(Calendar.DAY_OF_WEEK);
}
else {
return Calendar.getInstance().get(Calendar.DAY_OF_WEEK);
}
}
/**
* 得到小时
*
* @param c
* @return
*/
public static int getHour(Calendar c) {
if (c != null) {
return c.get(Calendar.HOUR);
}
else {
return Calendar.getInstance().get(Calendar.HOUR);
}
}
/**
* 得到分钟
*
* @param c
* @return
*/
public static int getMinute(Calendar c) {
if (c != null) {
return c.get(Calendar.MINUTE);
}
else {
return Calendar.getInstance().get(Calendar.MINUTE);
}
}
/**
* 得到秒
*
* @param c
* @return
*/
public static int getSecond(Calendar c) {
if (c != null) {
return c.get(Calendar.SECOND);
}
else {
return Calendar.getInstance().get(Calendar.SECOND);
}
}
/**
* 当前时间的前几天
*
* @param date
* @param n
* @return
*/
public static Date beforenDays(Date date, int n) {
Calendar c = Calendar.getInstance();
c.setTime(date);
c = before(c, n);
return c.getTime();
}
/**
* 当前时间的前几天
*
* @param date
* @param n
* @return
*/
public static Date afterDays(Date date, int n) {
Calendar c = Calendar.getInstance();
c.setTime(date);
c = after(c, n);
return c.getTime();
}
/**
* 昨天
*
* @param c
* @return
*/
public static Calendar yesterday(Calendar c) {
long offset = 1 * 24 * 60 * 60 * 1000;
Calendar calendar = null;
if (c != null) {
calendar = c;
}
else {
calendar = Calendar.getInstance();
}
calendar.setTimeInMillis(calendar.getTimeInMillis() - offset);
return calendar;
}
/**
* 明天
*
* @param c
* @return
*/
public static Calendar tomorrow(Calendar c) {
long offset = 1 * 24 * 60 * 60 * 1000;
Calendar calendar = null;
if (c != null) {
calendar = c;
}
else {
calendar = Calendar.getInstance();
}
calendar.setTimeInMillis(calendar.getTimeInMillis() + offset);
return calendar;
}
/**
* 得到指定或者当前时间前offset毫秒的Calendar
*
* @param c
* @param offset
* @return
*/
public static Calendar before(Calendar c, int offset) {
Calendar calendar = null;
if (c != null) {
calendar = c;
}
else {
calendar = Calendar.getInstance();
}
// calendar.setTimeInMillis(calendar.getTimeInMillis() - offset);
calendar.add(Calendar.DATE, -offset);
return calendar;
}
/**
* 得到指定或者当前时间前offset毫秒的Calendar
*
* @param c
* @param offset
* @return
*/
public static Calendar after(Calendar c, int offset) {
Calendar calendar = null;
if (c != null) {
calendar = c;
}
else {
calendar = Calendar.getInstance();
}
calendar.add(Calendar.DATE, offset);
return calendar;
}
/**
* 日期格式化
*
* @param c
* @param pattern
* @return
*/
public static String format(Calendar c, String pattern) {
Calendar calendar = null;
if (c != null) {
calendar = c;
}
else {
calendar = Calendar.getInstance();
}
if (pattern == null || pattern.equals("")) {
pattern = "yyyy年MM月dd日 HH:mm:ss";
}
SimpleDateFormat sdf = new SimpleDateFormat(pattern);
return sdf.format(calendar.getTime());
}
/**
* Date类型转换到Calendar类型
*
* @param d
* @return
*/
public static Calendar Date2Calendar(Date d) {
Calendar c = Calendar.getInstance();
c.setTime(d);
return c;
}
/**
* Calendar类型转换到Date类型
*
* @param c
* @return
*/
public static Date Calendar2Date(Calendar c) {
return c.getTime();
}
/**
* Date类型转换到Timestamp类型
*
* @param d
* @return
*/
public static Timestamp Date2Timestamp(Date d) {
return new Timestamp(d.getTime());
}
/**
* Calendar类型转换到Timestamp类型
*
* @param c
* @return
*/
public static Timestamp Calendar2Timestamp(Calendar c) {
return new Timestamp(c.getTimeInMillis());
}
/**
* Timestamp类型转换到Calendar类型
*
* @param ts
* @return
*/
public static Calendar Timestamp2Calendar(Timestamp ts) {
Calendar c = Calendar.getInstance();
c.setTime(ts);
return c;
}
/**
* 得到当前时间的字符串表示 格式2010-02-02 12:12:12
*
* @return
*/
public static String getTimeString() {
return format(Calendar.getInstance(), "yyyy-MM-dd HH:mm:ss");
}
public static Calendar sameDayZeroPoint(Calendar c) {
c.set(Calendar.HOUR_OF_DAY, 0);
c.set(Calendar.SECOND, 0);
c.set(Calendar.MINUTE, 0);
c.set(Calendar.MILLISECOND, 0);
return c;
}
public static Date str2Date(String dtime, String pattern) {
SimpleDateFormat sdfyyyyMMdd = new SimpleDateFormat(pattern);
try {
return sdfyyyyMMdd.parse(dtime);
}
catch (ParseException e) {
e.printStackTrace();
}
return null;
}
/**
* <p>
* 将字符串转化为对应的时间戳数字,例:
*
* @author zhang jinguang, 2015年12月30日
* @param dtime
* @param pattern
* @throws ParseException
* @return:date的long形式
*/
public static long str2DateLong(String dtime, String pattern) throws ParseException {
SimpleDateFormat sdfyyyyMMdd = new SimpleDateFormat(pattern);
return sdfyyyyMMdd.parse(dtime).getTime();
}
public static long str2DateLong(String dtime) throws ParseException {
SimpleDateFormat sdfyyyyMMdd = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
return sdfyyyyMMdd.parse(dtime).getTime();
}
public static Date str2Date(String dtime) {
return str2Date(dtime, "yyyy-MM-dd HH:mm:ss");
}
public static Date addDay(Date dtime, int days) {
Calendar calendar = Calendar.getInstance();
calendar.setTime(dtime);
calendar.add(Calendar.DAY_OF_MONTH, days);
return calendar.getTime();
}
public static Date addMonth(Date dtime, int month) {
Calendar calendar = Calendar.getInstance();
calendar.setTime(dtime);
calendar.add(Calendar.MONTH, month);
return calendar.getTime();
}
public static int daysBetween(Date smdate, Date bdate) throws ParseException {
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
smdate = sdf.parse(sdf.format(smdate));
bdate = sdf.parse(sdf.format(bdate));
Calendar cal = Calendar.getInstance();
cal.setTime(smdate);
long time1 = cal.getTimeInMillis();
cal.setTime(bdate);
long time2 = cal.getTimeInMillis();
long between_days = (time2 - time1) / (1000 * 3600 * 24);
return Integer.parseInt(String.valueOf(between_days));
}
public static int hoursBetween(Date smdate, Date bdate) throws ParseException {
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
smdate = sdf.parse(sdf.format(smdate));
bdate = sdf.parse(sdf.format(bdate));
Calendar cal = Calendar.getInstance();
cal.setTime(smdate);
long time1 = cal.getTimeInMillis();
cal.setTime(bdate);
long time2 = cal.getTimeInMillis();
long between_days = (time2 - time1) / (1000 * 3600);
return Integer.parseInt(String.valueOf(between_days));
}
/***
* 起始时间 @Title: getDayStart @param date @throws
*/
public static Date getDayStart(Date date) {
long time = date.getTime();
return new Date(getDayStart(time));
}
/***
* 结束时间 @Title: getDayEnd @param date @throws
*/
public static Date getDayEnd(Date date) {
long time = date.getTime();
return new Date(getDayEnd(time));
}
/***
* 结束时间 @Title: getDayEnd @param time @throws
*/
public static long getDayEnd(long time) {
return getDayStart(time) + 86400000;
}
/***
* 起始时间 @Title: getDayStart @param time @throws
*/
public static long getDayStart(long time) {
long t = (time + 28800000) % 86400000;
return time - t;
}
/***
* 周一 @Title: getMonday @param date @throws
*/
public static Date getMonday(Date date) {
Calendar cal = Date2Calendar(date);
cal.set(Calendar.DAY_OF_WEEK, Calendar.MONDAY);
return cal.getTime();
}
/***
* 当月最后一天 @Title: getFirstDayOfMonth @param date @throws
*/
public static Date getFirstDayOfMonth(Date date) {
Calendar cal = Date2Calendar(date);
cal.set(Calendar.DAY_OF_MONTH, 1);
return cal.getTime();
}
/***
* 当月最后一天 @Title: getLastDayOfMonth @param date @throws
*/
public static Date getLastDayOfMonth(Date date) {
Calendar cal = Date2Calendar(date);
cal.setTime(date);
cal.set(Calendar.DAY_OF_MONTH, 1);
cal.roll(Calendar.DAY_OF_MONTH, -1);
return cal.getTime();
}
/**
* date> date1 返回 true 否则 false
*
* @param date
* @param date1
* @return
*/
public static Boolean compare(Date date, Date date1) {
return date.getTime() > date1.getTime();
}
public static void main(String[] args) throws ParseException {
String today = "2015-12-30";
System.out.println(str2DateLong(today, "yyyy-MM-dd"));
System.out.println(str2DateLong(today, "yyyy-MM-dd") + 24 * 60 * 60 * 1000);
Date curDate = new Date();
// String date1 = str2Date(today, "yyyy-MM-dd");
//
// System.out.println(sdfYYYYMMDD.parse(today).getTime());
// System.out.println(sdfYYYYMMDD.parse(today).getTime() );
// Date start = getDayStart(curDate);
// Date end = getDayEnd(curDate);
//
// System.out.println(sdfYYYYMMDDHHMMSS.format(start));
// System.out.println(sdfYYYYMMDDHHMMSS.format(end));
// System.out.println(sdfYYYYMMDDHHMMSS.format(beforenDays(curDate,
// 2)));
// System.out.println(sdfYYYYMMDDHHMMSS.format(afterDays(curDate, 2)));
}
public static String date2Str(Date curTime) {
return sdfYYYYMMDDHHMMSS.format(curTime);
}
public static Long getSeqence() {
return System.currentTimeMillis();
}
}
日期工具类
最新推荐文章于 2024-09-16 20:08:29 发布