时间处理类
package com.mytest.TimeUtils;
import java.sql.Timestamp;
import java.text.DateFormat;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Calendar;
import java.util.Date;
import java.util.GregorianCalendar;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import org.joda.time.Days;
import org.joda.time.Hours;
import org.joda.time.LocalDate;
import org.joda.time.Minutes;
import org.joda.time.Months;
import org.joda.time.Seconds;
import org.joda.time.Weeks;
import org.joda.time.Years;
public class TimeUtil {
public static Date getDate() {
Calendar calendar = Calendar.getInstance();
return calendar.getTime();
}
public static Date getDate(String text, String pattern) throws Exception {
Date date = null;
if (null!=text&&""!=text) {
SimpleDateFormat format = null;
if (isBlank(pattern)) {
format = new SimpleDateFormat();
} else {
format = new SimpleDateFormat(pattern);
}
date = format.parse(text);
}
return date;
}
public static boolean isBlank(String text){
if (null!=text&&""!=text) {
return true;
}else{
return false;
}
}
public static String format(Date date, String pattern) throws Exception {
String text = null;
if (date != null) {
SimpleDateFormat format = null;
if (isBlank(pattern)) {
format = new SimpleDateFormat();
} else {
format = new SimpleDateFormat(pattern);
}
text = format.format(date);
}
return text;
}
public static String format(Timestamp timestamp, String pattern) throws Exception {
return format((Date) timestamp, pattern);
}
public static Date add(Date date, int field, int value) throws Exception {
Calendar calendar = new GregorianCalendar();
calendar.setTime(date);
calendar.add(field, value);
return calendar.getTime();
}
public static Timestamp add(Timestamp timestamp, int field, int value) throws Exception {
Date date = add((Date)timestamp, field, value);
return new Timestamp(date.getTime());
}
public static String dateFormatConvert(String text, String pattern1, String pattern2) throws Exception {
if (isBlank(text)) {
return null;
} else {
Date date = getDate(text, pattern1);
return format(date, pattern2);
}
}
public static long countDateField(Date startDate, Date endDate, int fieldType) throws Exception {
long count = 0;
if (startDate == null || endDate == null) {
throw new Exception("日期参数为空!");
}
Calendar c1 = Calendar.getInstance();
Calendar c2 = Calendar.getInstance();
c1.setTime(startDate);
c2.setTime(endDate);
switch (fieldType) {
case Calendar.YEAR:
count = Math.abs(c1.get(Calendar.YEAR) - c2.get(Calendar.YEAR));
break;
case Calendar.MONTH:
count = Math.abs((c1.get(Calendar.YEAR)*12 + c1.get(Calendar.MONTH)) - (c2.get(Calendar.YEAR)*12 + c2.get(Calendar.MONTH)));
break;
case Calendar.DAY_OF_MONTH:
count = Math.abs(startDate.getTime()/86400000 - endDate.getTime()/86400000);
break;
case Calendar.HOUR:
count = Math.abs(startDate.getTime()/3600000 - endDate.getTime()/3600000);
break;
case Calendar.MINUTE:
count = Math.abs(startDate.getTime()/60000 - endDate.getTime()/60000);
break;
case Calendar.SECOND:
count = Math.abs(startDate.getTime()/1000 - endDate.getTime()/1000);
break;
default:
throw new Exception("不支持的日期部分类型!");
}
return count;
}
public static long countDateField(Timestamp startDate, Timestamp endDate, int fieldType) throws Exception {
return countDateField((Date)startDate, (Date)endDate, fieldType);
}
public static String[] listDateField(Date startDate, Date endDate, int fieldType) throws Exception {
List list = null;
if (startDate == null || endDate == null) {
throw new Exception("日期参数为空!");
}
Calendar calendar = Calendar.getInstance();
calendar.setTime(startDate);
String pattern = null;
switch (fieldType) {
case Calendar.YEAR:
pattern = "yyyy";
break;
case Calendar.MONTH:
pattern = "yyyyMM";
break;
case Calendar.DAY_OF_MONTH:
pattern = "yyyyMMdd";
break;
case Calendar.HOUR:
pattern = "yyyyMMddHH";
break;
case Calendar.MINUTE:
pattern = "yyyyMMddHHmm";
break;
default:
throw new Exception("不支持的日期部分类型!");
}
int amount = 0;
if (startDate.before(endDate)) {
amount = 1;
}
else {
amount = -1;
}
String e = format(endDate, pattern);
list = new ArrayList();
while (true) {
String s = format(calendar.getTime(), pattern);
list.add(s);
if (s.equals(e)) {
break;
}
calendar.add(fieldType, amount);
}
return (String[])list.toArray(new String[0]);
}
public static String[] listDateField(Timestamp startDate, Timestamp endDate, int fieldType) throws Exception {
return listDateField((Date)startDate, (Date)endDate, fieldType);
}
public static Date truncate(Date date, int fieldType) throws Exception {
if (date == null) {
throw new Exception("日期参数为空!");
}
String pattern = null;
switch (fieldType) {
case Calendar.YEAR:
pattern = "1970";
break;
case Calendar.MONTH:
pattern = "yyyy";
break;
case Calendar.DAY_OF_MONTH:
pattern = "yyyyMM";
break;
case Calendar.HOUR:
pattern = "yyyyMMdd";
break;
case Calendar.MINUTE:
pattern = "yyyyMMddHH";
break;
case Calendar.SECOND:
pattern = "yyyyMMddHHmm";
break;
default:
throw new Exception("不支持的日期部分类型!");
}
return getDate(format(date, pattern), pattern);
}
public static Timestamp truncate(Timestamp timestamp, int fieldType) throws Exception {
Date time = truncate((Date)timestamp, fieldType);
return new Timestamp(time.getTime());
}
public static String formatDate(Date date, String pattern) {
if (date == null) {
return "";
}
SimpleDateFormat myFormat = new SimpleDateFormat(pattern);
return myFormat.format(date);
}
public static String formatDate(Timestamp time, String pattern) {
if (time == null) {
return "";
}
SimpleDateFormat myFormat = new SimpleDateFormat(pattern);
return myFormat.format(time);
}
public static Timestamp getTime() {
SimpleDateFormat myFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
Calendar calendar = Calendar.getInstance();
String mystrdate = myFormat.format(calendar.getTime());
return Timestamp.valueOf(mystrdate);
}
public static Timestamp getDateFirst() {
SimpleDateFormat myFormat = new SimpleDateFormat("yyyy-MM-dd 00:00:00");
Calendar calendar = Calendar.getInstance();
String mystrdate = myFormat.format(calendar.getTime());
return Timestamp.valueOf(mystrdate);
}
public static Timestamp getDateLast() {
SimpleDateFormat myFormat = new SimpleDateFormat("yyyy-MM-dd 23:59:59");
Calendar calendar = Calendar.getInstance();
String mystrdate = myFormat.format(calendar.getTime());
return Timestamp.valueOf(mystrdate);
}
public static String getCurrDate() {
SimpleDateFormat myFormat = new SimpleDateFormat("yyyyMMdd");
Calendar calendar = Calendar.getInstance();
String mystrdate = myFormat.format(calendar.getTime());
return mystrdate;
}
public static Timestamp getTime(String timeString) {
return Timestamp.valueOf(timeString);
}
public static Timestamp getTime(String timeString, String fmt) throws ParseException {
SimpleDateFormat myFormat = new SimpleDateFormat(fmt);
Date date = myFormat.parse(timeString);
myFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
return getTime(myFormat.format(date));
}
public static Timestamp getDateFirst(String timeString) throws ParseException {
if (null == timeString || "".equals(timeString)) {
return null;
}
if (timeString.length() > 10) {
return getTime(timeString, "yyyy-MM-dd HH:mm:ss");
} else {
return getTime(timeString, "yyyy-MM-dd");
}
}
public static Timestamp getDateLast(String timeString) throws ParseException {
if (null == timeString || "".equals(timeString)) {
return null;
}
if (timeString.length() > 10) {
return getTime(timeString, "yyyy-MM-dd HH:mm:ss");
} else {
return getTime(timeString + " 23:59:59", "yyyy-MM-dd HH:mm:ss");
}
}
public static Timestamp getMonday() {
Calendar calendar = Calendar.getInstance();
int dayofweek = calendar.get(Calendar.DAY_OF_WEEK) - 1;
calendar.add(Calendar.DATE, -dayofweek + 1);
SimpleDateFormat myFormat = new SimpleDateFormat("yyyy-MM-dd 00:00:00");
String mystrdate = myFormat.format(calendar.getTime());
return Timestamp.valueOf(mystrdate);
}
public static Timestamp getSunday() {
Calendar calendar = Calendar.getInstance();
int dayofweek = calendar.get(Calendar.DAY_OF_WEEK) - 1;
calendar.add(Calendar.DATE, -dayofweek);
SimpleDateFormat myFormat = new SimpleDateFormat("yyyy-MM-dd 23:59:59");
String mystrdate = myFormat.format(calendar.getTime());
return Timestamp.valueOf(mystrdate);
}
public static long getsubDate(String oldDate, String newDate) {
SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMdd");
Date d1 = null;
Date d2 = null;
try {
d1 = sdf.parse(oldDate);
d2 = sdf.parse(newDate);
} catch (ParseException e) {
throw new RuntimeException("日期处理出错");
}
return (d1.getTime() - d2.getTime()) / (3600L * 1000 * 24);
}
public static long getsubDate(Date oldDate, Date newDate) {
return (oldDate.getTime() - newDate.getTime()) / (3600L * 1000 * 24);
}
public static String getMinute() {
SimpleDateFormat myFormat = new SimpleDateFormat("yyyyMMddHHmm");
return myFormat.format(new Date());
}
public static Date parseToDate(String val) throws ParseException {
Date date = null;
if (null != val && val.trim().length() != 0 && !"null".equals(val.trim().toLowerCase())) {
val = val.trim();
if (val.length() > 10) {
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
date = sdf.parse(val);
}
if (val.length() <= 10) {
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
date = sdf.parse(val);
}
}
return date;
}
public static Date parseToDate(String dateStr, String format) throws ParseException {
Date date = null;
if (null != dateStr && dateStr.trim().length() != 0 && !"null".equals(dateStr.trim().toLowerCase())) {
dateStr = dateStr.trim();
SimpleDateFormat sdf = new SimpleDateFormat(format);
date = sdf.parse(dateStr);
}
return date;
}
public static Map getPreMonth() {
SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd");
Calendar cal = Calendar.getInstance();
GregorianCalendar gcLast = (GregorianCalendar) Calendar.getInstance();
Calendar calendar = Calendar.getInstance();
calendar.setTime(new Date());
calendar.add(Calendar.MONTH, -1);
Date theDate = calendar.getTime();
gcLast.setTime(theDate);
gcLast.set(Calendar.DAY_OF_MONTH, 1);
String day_first_prevM = df.format(gcLast.getTime());
StringBuilder str = new StringBuilder().append(day_first_prevM).append(" 00:00:00");
day_first_prevM = str.toString();
calendar.add(cal.MONTH, 1);
calendar.set(cal.DATE, 1);
calendar.add(cal.DATE, -1);
String day_end_prevM = df.format(calendar.getTime());
StringBuilder endStr = new StringBuilder().append(day_end_prevM).append(" 23:59:59");
day_end_prevM = endStr.toString();
Map map = new HashMap();
map.put("prevMonthFD", day_first_prevM);
map.put("prevMonthPD", day_end_prevM);
return map;
}
public static Timestamp getPreMonday() {
Calendar calendar = Calendar.getInstance();
calendar.set(Calendar.DAY_OF_WEEK, Calendar.MONDAY);
calendar.add(calendar.WEEK_OF_MONTH, -1);
SimpleDateFormat myFormat = new SimpleDateFormat("yyyy-MM-dd 00:00:00");
String mystrdate = myFormat.format(calendar.getTime());
return Timestamp.valueOf(mystrdate);
}
public static Timestamp getPreSunday() {
Calendar calendar = Calendar.getInstance();
calendar.set(Calendar.DAY_OF_WEEK, Calendar.SUNDAY);
calendar.add(calendar.WEEK_OF_MONTH, -1);
SimpleDateFormat myFormat = new SimpleDateFormat("yyyy-MM-dd 23:59:59");
String mystrdate = myFormat.format(calendar.getTime());
return Timestamp.valueOf(mystrdate);
}
public static String getDateyyyyMMddHHmmssSSSStr() {
SimpleDateFormat myFormat = new SimpleDateFormat("yyyyMMddHHmmssSSS");
Calendar calendar = Calendar.getInstance();
return myFormat.format(calendar.getTime());
}
public static String getDateyyyyMMddHHmmss() {
SimpleDateFormat myFormat = new SimpleDateFormat("yyyyMMddHHmmss");
Calendar calendar = Calendar.getInstance();
return myFormat.format(calendar.getTime());
}
public static String getDateyyyyMMdd() {
SimpleDateFormat myFormat = new SimpleDateFormat("yyyyMMdd");
Calendar calendar = Calendar.getInstance();
return myFormat.format(calendar.getTime());
}
public static String getDateyyyyMMdd(int t) {
SimpleDateFormat myFormat = new SimpleDateFormat("yyyyMMdd");
Calendar calendar = Calendar.getInstance();
int day = calendar.get(Calendar.DAY_OF_YEAR);
calendar.set(Calendar.DAY_OF_YEAR, day - t);
return myFormat.format(calendar.getTime());
}
public static String getMonth() {
SimpleDateFormat myFormat = new SimpleDateFormat("yyyyMM");
return myFormat.format(getDate());
}
public static String getDateNow() {
SimpleDateFormat myFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
Calendar calendar = Calendar.getInstance();
return myFormat.format(calendar.getTime());
}
public static boolean validateDate(String pattern, String date) {
if (isBlank(date)) {
return false;
}
SimpleDateFormat sdf = new SimpleDateFormat(pattern);
try {
Date time = sdf.parse(date);
String newValue = sdf.format(time);
return date.equals(newValue);
} catch (ParseException e) {
return false;
}
}
public static boolean validateyMdHms(String date) {
return validateDate("yyyyMMddHHmmss", date);
}
public static boolean validateyMdHmsWithSymbol(String date) {
return validateDate("yyyy-MM-dd HH:mm:ss", date);
}
public static boolean validateyMdWithSymbol(String date) {
return validateDate("yyyy-MM-dd", date);
}
public static boolean validateyMd(String date) {
return validateDate("yyyyMMdd", date);
}
public static String getPreMonth(String repeatDate) {
String lastMonth = "";
Calendar cal = Calendar.getInstance();
SimpleDateFormat dft = new SimpleDateFormat("yyyyMM");
int year = Integer.parseInt(repeatDate.substring(0, 4));
String monthsString = repeatDate.substring(4, 6);
int month;
if ("0".equals(monthsString.substring(0, 1))) {
month = Integer.parseInt(monthsString.substring(1, 2));
} else {
month = Integer.parseInt(monthsString.substring(0, 2));
}
cal.set(year,month,Calendar.DATE);
lastMonth = dft.format(cal.getTime());
return lastMonth;
}
public static String getLastMonth(String repeatDate) {
String lastMonth = "";
Calendar cal = Calendar.getInstance();
SimpleDateFormat dft = new SimpleDateFormat("yyyyMM");
int year = Integer.parseInt(repeatDate.substring(0, 4));
String monthsString = repeatDate.substring(4, 6);
int month;
if ("0".equals(monthsString.substring(0, 1))) {
month = Integer.parseInt(monthsString.substring(1, 2));
} else {
month = Integer.parseInt(monthsString.substring(0, 2));
}
cal.set(year,month-2,Calendar.DATE);
lastMonth = dft.format(cal.getTime());
return lastMonth;
}
public static Timestamp getCurrentTime() {
return new Timestamp(System.currentTimeMillis());
}
public static String getCurrDateTime() {
java.sql.Timestamp date = new java.sql.Timestamp(System.
currentTimeMillis());
SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
return formatter.format(date);
}
public static String getCurrDateTime_yyyymmddhhmmss() {
java.sql.Timestamp date = new java.sql.Timestamp(System.
currentTimeMillis());
SimpleDateFormat formatter = new SimpleDateFormat("yyyyMMddHHmmss");
return formatter.format(date);
}
public static java.sql.Timestamp getDateByString(String strDate) {
if (strDate.trim().equals("")) {
return new java.sql.Timestamp(System.currentTimeMillis());
}
try {
strDate = getFormattedDate(strDate, "yyyy-MM-dd HH:mm:ss") +
".000000000";
return java.sql.Timestamp.valueOf(strDate);
} catch (Exception ex) {
return new java.sql.Timestamp(System.currentTimeMillis());
}
}
public static String getFormattedDate(String strDate, String strFormatTo) {
if ((strDate == null) || strDate.trim().equals("")) {
return "";
}
strDate = strDate.replace('/', '-');
strFormatTo = strFormatTo.replace('/', '-');
if (strDate.equals("0000-00-00 00:00:00") ||
strDate.equals("1800-01-01 00:00:00")) {
return "";
}
String formatStr = strFormatTo;
if ((strDate == null) || strDate.trim().equals("")) {
return "";
}
switch (strDate.trim().length()) {
case 6:
if (strDate.substring(0, 1).equals("0")) {
formatStr = "yyMMdd";
} else {
formatStr = "yyyyMM";
}
break;
case 8:
formatStr = "yyyyMMdd";
break;
case 10:
if (strDate.indexOf("-") == -1) {
formatStr = "yyyy/MM/dd";
} else {
formatStr = "yyyy-MM-dd";
}
break;
case 11:
if (strDate.getBytes().length == 14) {
formatStr = "yyyy年MM月dd日";
} else {
return "";
}
case 14:
formatStr = "yyyyMMddHHmmss";
break;
case 19:
if (strDate.indexOf("-") == -1) {
formatStr = "yyyy/MM/dd HH:mm:ss";
} else {
formatStr = "yyyy-MM-dd HH:mm:ss";
}
break;
case 21:
if (strDate.indexOf("-") == -1) {
formatStr = "yyyy/MM/dd HH:mm:ss.S";
} else {
formatStr = "yyyy-MM-dd HH:mm:ss.S";
}
break;
default:
return strDate.trim();
}
try {
SimpleDateFormat formatter = new SimpleDateFormat(formatStr);
Calendar calendar = Calendar.getInstance();
calendar.setTime(formatter.parse(strDate));
formatter = new SimpleDateFormat(strFormatTo);
return formatter.format(calendar.getTime());
} catch (Exception e) {
return "";
}
}
public static Timestamp formatDateTimeToDate(Date date) {
Calendar rightNow = Calendar.getInstance();
rightNow.setTime(date);
rightNow.set(Calendar.HOUR_OF_DAY, 0);
rightNow.set(Calendar.MILLISECOND, 0);
rightNow.set(Calendar.SECOND, 0);
rightNow.set(Calendar.MINUTE, 0);
return new Timestamp(rightNow.getTimeInMillis());
}
public static Timestamp getLastDayOfMonth(Timestamp timest1) {
Calendar cal = Calendar.getInstance();
cal.setTime(timest1);
cal.add(Calendar.MONTH,1);
cal.set(Calendar.DAY_OF_MONTH,0);
return new Timestamp(cal.getTimeInMillis());
}
public static String getYear(int year) {
Calendar cal = Calendar.getInstance();
cal.add(Calendar.YEAR,year);
java.sql.Timestamp date = new java.sql.Timestamp(cal.getTimeInMillis());
SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
return formatter.format(date);
}
public static String getYesterday() {
Date cDate = new Date();
cDate.setTime(cDate.getTime() - 24 * 3600 * 1000);
SimpleDateFormat cSimpleDateFormat = new SimpleDateFormat("yyyy-MM-dd");
return cSimpleDateFormat.format(cDate);
}
public static String getTomorrow() {
Date cDate = new Date();
cDate.setTime(cDate.getTime() + 24 * 3600 * 1000);
SimpleDateFormat cSimpleDateFormat = new SimpleDateFormat("yyyy-MM-dd");
return cSimpleDateFormat.format(cDate);
}
public static String getSpecTime(String strFormat, int iYear, int iMonth,
int iDate, int iHour, int iMinute,
int iSecond) {
Calendar rightNow = Calendar.getInstance();
rightNow.set(Calendar.YEAR, rightNow.get(Calendar.YEAR) + iYear);
rightNow.set(Calendar.MONTH, rightNow.get(Calendar.MONTH) + iMonth);
rightNow.set(Calendar.DATE, rightNow.get(Calendar.DATE) + iDate);
rightNow.set(Calendar.HOUR, rightNow.get(Calendar.HOUR) + iHour);
rightNow.set(Calendar.MINUTE, rightNow.get(Calendar.MINUTE) + iMinute);
rightNow.set(Calendar.SECOND, rightNow.get(Calendar.SECOND) + iSecond);
SimpleDateFormat df = new SimpleDateFormat(strFormat);
return df.format(rightNow.getTime());
}
public static String getCurenDayAddDay(String strFormat,int iDays) {
Calendar c = new GregorianCalendar();
c.add(Calendar.DAY_OF_MONTH,iDays);
Date cDate = new Date();
cDate.setTime(c.getTimeInMillis());
SimpleDateFormat cSimpleDateFormat = new SimpleDateFormat(strFormat);
return cSimpleDateFormat.format(cDate);
}
public static String getDateBeforeMonths(int iMonth,String strFormat){
Calendar cal = new GregorianCalendar();
cal.add(Calendar.MONTH,iMonth);
Date cDate = new Date();
cDate.setTime(cal.getTimeInMillis());
SimpleDateFormat cSimpleDateFormat = new SimpleDateFormat(strFormat);
String strNewDate = cSimpleDateFormat.format(cDate);
return strNewDate;
}
public static String getSpecifiedDayBefore(String specifiedDay,String format){
Calendar c = Calendar.getInstance();
Date date=null;
try {
date = new SimpleDateFormat(format).parse(specifiedDay);
} catch (ParseException e) {
e.printStackTrace();
}
c.setTime(date);
int day=c.get(Calendar.DATE);
c.set(Calendar.DATE,day-1);
String dayBefore=new SimpleDateFormat(format).format(c.getTime());
return dayBefore;
}
public static String getSpecifiedDayAfter(String specifiedDay,String format){
Calendar c = Calendar.getInstance();
Date date=null;
try {
date = new SimpleDateFormat(format).parse(specifiedDay);
} catch (ParseException e) {
e.printStackTrace();
}
c.setTime(date);
int day=c.get(Calendar.DATE);
c.set(Calendar.DATE,day+1);
String dayAfter=new SimpleDateFormat(format).format(c.getTime());
return dayAfter;
}
public static String getYYYYMMDDHHMMSS(Timestamp ts, String pattern) throws Exception {
if (ts == null) {
return null;
}
DateFormat dateformat = new SimpleDateFormat(pattern);
String str = dateformat.format(ts);
return str;
}
public static Timestamp getDateOfNextMonthFirstDay(Date date) {
Calendar rightNow = Calendar.getInstance();
rightNow.setTime(date);
rightNow.set(Calendar.DAY_OF_MONTH, 1);
rightNow.set(Calendar.HOUR_OF_DAY, 0);
rightNow.set(Calendar.MILLISECOND, 0);
rightNow.set(Calendar.SECOND, 0);
rightNow.set(Calendar.MINUTE, 0);
rightNow.set(Calendar.MONTH, rightNow.get(Calendar.MONTH) + 1);
return new Timestamp(rightNow.getTimeInMillis());
}
public static Timestamp getDateOfPreMonthFirstDay(Date date) {
Calendar rightNow = Calendar.getInstance();
rightNow.setTime(date);
rightNow.set(Calendar.DAY_OF_MONTH, 1);
rightNow.set(Calendar.HOUR_OF_DAY, 0);
rightNow.set(Calendar.MILLISECOND, 0);
rightNow.set(Calendar.SECOND, 0);
rightNow.set(Calendar.MINUTE, 0);
rightNow.set(Calendar.MONTH, rightNow.get(Calendar.MONTH) - 1);
return new Timestamp(rightNow.getTimeInMillis());
}
public static Timestamp getDateOfCurrentMonthEndDay(Date date) {
Calendar rightNow = Calendar.getInstance();
rightNow.setTime(date);
rightNow.set(Calendar.DAY_OF_MONTH, rightNow.getActualMaximum(Calendar.DAY_OF_MONTH));
rightNow.set(Calendar.HOUR_OF_DAY, 23);
rightNow.set(Calendar.MILLISECOND, 59);
rightNow.set(Calendar.SECOND, 59);
rightNow.set(Calendar.MINUTE, 59);
rightNow.set(Calendar.MONTH, rightNow.get(Calendar.MONTH));
return new Timestamp(rightNow.getTimeInMillis());
}
public static Timestamp getLastHour(Date date){
if (date == null) {
date = new Date();
}
Calendar c = Calendar.getInstance();
c.setTime(date);
c.setLenient(true);
c.set(Calendar.HOUR_OF_DAY, c.get(Calendar.HOUR_OF_DAY) + 1);
c.set(Calendar.MINUTE, 59);
c.set(Calendar.SECOND, 59);
c.set(Calendar.MILLISECOND, 59);
return new Timestamp(c.getTimeInMillis());
}
public static Timestamp getLastDay(Date date){
Calendar rightNow = Calendar.getInstance();
rightNow.setTime(date);
rightNow.set(Calendar.HOUR_OF_DAY, 23);
rightNow.set(Calendar.MILLISECOND, 59);
rightNow.set(Calendar.SECOND, 59);
rightNow.set(Calendar.MINUTE, 59);
return new Timestamp(rightNow.getTimeInMillis());
}
public static Timestamp getPreLastDate(Date date) {
Calendar rightNow = Calendar.getInstance();
rightNow.setTime(date);
rightNow.set(Calendar.DAY_OF_MONTH, rightNow.get(Calendar.DAY_OF_MONTH) - 1);
rightNow.set(Calendar.HOUR_OF_DAY, 23);
rightNow.set(Calendar.MILLISECOND, 59);
rightNow.set(Calendar.SECOND, 59);
rightNow.set(Calendar.MINUTE, 59);
rightNow.set(Calendar.MONTH, rightNow.get(Calendar.MONTH));
return new Timestamp(rightNow.getTimeInMillis());
}
public static Timestamp getNextDay(Date date) {
Calendar rightNow = Calendar.getInstance();
rightNow.setTime(date);
rightNow.set(Calendar.DAY_OF_MONTH, rightNow.get(Calendar.DAY_OF_MONTH) + 1);
rightNow.set(Calendar.HOUR_OF_DAY, 0);
rightNow.set(Calendar.MILLISECOND, 0);
rightNow.set(Calendar.SECOND, 0);
rightNow.set(Calendar.MINUTE, 0);
rightNow.set(Calendar.MONTH, rightNow.get(Calendar.MONTH));
return new Timestamp(rightNow.getTimeInMillis());
}
public static Timestamp getDay(Date date,int i) {
Calendar rightNow = Calendar.getInstance();
rightNow.setTime(date);
rightNow.set(Calendar.DAY_OF_MONTH, rightNow.get(Calendar.DAY_OF_MONTH) + i);
rightNow.set(Calendar.HOUR_OF_DAY, 0);
rightNow.set(Calendar.MILLISECOND, 0);
rightNow.set(Calendar.SECOND, 0);
rightNow.set(Calendar.MINUTE, 0);
rightNow.set(Calendar.MONTH, rightNow.get(Calendar.MONTH));
return new Timestamp(rightNow.getTimeInMillis());
}
public static String getYYYYMMDD(Date date) {
if (date == null)
return null;
DateFormat dateformat = new SimpleDateFormat("yyyy-MM-dd");
return dateformat.format(date);
}
public static String getNoLineYYYYMMDD(Date date) {
if (date == null)
return null;
DateFormat dateformat = new SimpleDateFormat("yyyyMMdd");
return dateformat.format(date);
}
public static int DateDiff(Date date1, Date date2) {
int i = (int) ((date1.getTime() - date2.getTime()) / 3600 / 24 / 1000);
return i;
}
public static Timestamp DateAddMonth(Timestamp timest1, int month) {
Calendar cal = Calendar.getInstance();
cal.setTime(timest1);
cal.add(Calendar.MONTH,month);
return new Timestamp(cal.getTimeInMillis());
}
public static Timestamp DateAddDay(Timestamp timest1, int day) {
Calendar cal = Calendar.getInstance();
cal.setTime(timest1);
cal.add(Calendar.DAY_OF_MONTH,day);
return new Timestamp(cal.getTimeInMillis());
}
public static String getFormattedDate(java.sql.Timestamp dtDate,
String strFormatTo) {
if (dtDate == null) {
return "";
}
if (dtDate.equals(new java.sql.Timestamp(0))) {
return "";
}
strFormatTo = strFormatTo.replace('/', '-');
try {
SimpleDateFormat formatter = new SimpleDateFormat("yyyy");
if (Integer.parseInt(formatter.format(dtDate)) < 1900) {
return "";
} else {
formatter = new SimpleDateFormat(strFormatTo);
return formatter.format(dtDate);
}
} catch (Exception e) {
return "";
}
}
public static Timestamp getDateAddMinute(Timestamp dateTime, int minute) {
Calendar cal = Calendar.getInstance();
cal.setTime(dateTime);
cal.add(Calendar.MINUTE, minute);
return new Timestamp(cal.getTimeInMillis());
}
public static int yearsBetween(Date start, Date end) {
return Years.yearsBetween(LocalDate.fromDateFields(start), LocalDate.fromDateFields(end)).getYears();
}
public static int monthsBetween(Date start, Date end) {
return Months.monthsBetween(LocalDate.fromDateFields(start), LocalDate.fromDateFields(end)).getMonths();
}
public static int weeksBetween(Date start, Date end) {
return Weeks.weeksBetween(LocalDate.fromDateFields(start), LocalDate.fromDateFields(end)).getWeeks();
}
public static int daysBetween(Date start, Date end) {
return Days.daysBetween(LocalDate.fromDateFields(start), LocalDate.fromDateFields(end)).getDays();
}
public static int hoursBetween(Date start, Date end) {
return Hours.hoursBetween(LocalDate.fromDateFields(start), LocalDate.fromDateFields(end)).getHours();
}
public static int minutesBetween(Date start, Date end) {
return Minutes.minutesBetween(LocalDate.fromDateFields(start), LocalDate.fromDateFields(end)).getMinutes();
}
public static int secondsBetween(Date start, Date end) {
return Seconds.secondsBetween(LocalDate.fromDateFields(start), LocalDate.fromDateFields(end)).getSeconds();
}
}