170 lines
4.6 KiB
Java
170 lines
4.6 KiB
Java
package com.tenwa.reckon.util;
|
||
|
||
import java.text.ParseException;
|
||
import java.text.SimpleDateFormat;
|
||
import java.util.Calendar;
|
||
import java.util.Date;
|
||
|
||
public class DateUtil
|
||
{
|
||
public final static String FULL_TIME_FORMAT = "yyyy/MM/dd HH:mm:ss.SSS";
|
||
public final static String TIME_MONTH = "MONTH";
|
||
public final static String TIME_DAY = "DAY";
|
||
public final static String TIME_YEAR = "YEAR";
|
||
public static int getIntervalDays(Date startDate, Date endDate)
|
||
{
|
||
if ((null == startDate) || (null == endDate))
|
||
{
|
||
return -1;
|
||
}
|
||
long intervalMilli = (endDate.getTime() - startDate.getTime());
|
||
return (int) (intervalMilli / (24 * 60 * 60 * 1000));
|
||
}
|
||
|
||
public static int getMonthSpace(String date1, String date2)
|
||
throws ParseException {
|
||
|
||
int result = 0;
|
||
|
||
SimpleDateFormat sdf = new SimpleDateFormat("yyyy/MM/dd");
|
||
|
||
Calendar c1 = Calendar.getInstance();
|
||
Calendar c2 = Calendar.getInstance();
|
||
|
||
c1.setTime(sdf.parse(date1));
|
||
c2.setTime(sdf.parse(date2));
|
||
|
||
result = c2.get(Calendar.MONTH) - c1.get(Calendar.MONTH);
|
||
|
||
return result+( c2.get(Calendar.YEAR) - c1.get(Calendar.YEAR))*12;
|
||
|
||
}
|
||
|
||
public static int daysOfTwo(Date startDate, Date endDate)
|
||
{
|
||
Calendar aCalendar = Calendar.getInstance();
|
||
aCalendar.setTime(startDate);
|
||
int day1 = aCalendar.get(Calendar.DAY_OF_YEAR);
|
||
aCalendar.setTime(endDate);
|
||
int day2 = aCalendar.get(Calendar.DAY_OF_YEAR);
|
||
return day2 - day1;
|
||
}
|
||
|
||
public static String addDate(Date startDate, String type , Integer num ){
|
||
Calendar aCalendar = Calendar.getInstance();
|
||
aCalendar.setTime(startDate);
|
||
if(type.equalsIgnoreCase(DateUtil.TIME_DAY)){
|
||
aCalendar.add(Calendar.DAY_OF_YEAR, num);
|
||
}else if(type.equalsIgnoreCase(DateUtil.TIME_MONTH)){
|
||
aCalendar.add(Calendar.MONTH, num);
|
||
}else{
|
||
aCalendar.add(Calendar.YEAR, num);
|
||
}
|
||
return DateUtil.getSystemTimeByFormat(aCalendar.getTime(), "yyyy/MM/dd") ;
|
||
}
|
||
|
||
public static String addDate(String startDate, String type , Integer num ){
|
||
Calendar aCalendar = Calendar.getInstance();
|
||
aCalendar.setTime(getTimeByFormat(startDate,"yyyy/MM/dd"));
|
||
if(type.equalsIgnoreCase(DateUtil.TIME_DAY)){
|
||
aCalendar.add(Calendar.DAY_OF_YEAR, num);
|
||
}else if(type.equalsIgnoreCase(DateUtil.TIME_MONTH)){
|
||
aCalendar.add(Calendar.MONTH, num);
|
||
}else{
|
||
aCalendar.add(Calendar.YEAR, num);
|
||
}
|
||
return DateUtil.getSystemTimeByFormat(aCalendar.getTime(), "yyyy/MM/dd") ;
|
||
}
|
||
|
||
public static Date getEndDateByDays(Date startDate, int days)
|
||
{
|
||
Calendar aCalendar = Calendar.getInstance();
|
||
aCalendar.setTime(startDate);
|
||
aCalendar.add(Calendar.DAY_OF_YEAR, days);
|
||
return aCalendar.getTime();
|
||
}
|
||
|
||
public static String getSystemDate()
|
||
{
|
||
SimpleDateFormat sdf = new SimpleDateFormat("yyyy/MM/dd");
|
||
return sdf.format(new Date());
|
||
}
|
||
|
||
public static String getSystemDateTime()
|
||
{
|
||
SimpleDateFormat sdf = new SimpleDateFormat("yyyy/MM/dd HH:mm:ss");
|
||
return sdf.format(new Date());
|
||
}
|
||
|
||
public static String getSystemDateDetailTime()
|
||
{
|
||
SimpleDateFormat sdf = new SimpleDateFormat("yyyy/MM/dd HH:mm:ss:sss");
|
||
return sdf.format(new Date());
|
||
}
|
||
|
||
public static String getDateTime(Date date)
|
||
{
|
||
SimpleDateFormat sdf = new SimpleDateFormat("yyyy/MM/dd HH:mm:ss");
|
||
if (null == date) {
|
||
date = new Date();
|
||
}
|
||
return sdf.format(date);
|
||
}
|
||
|
||
/**
|
||
* @param dateFormat
|
||
* <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ڸ<EFBFBD>ʽ<EFBFBD><CABD><EFBFBD><EFBFBD><EFBFBD>磺yyyy-MM-dd HH:mm:ss
|
||
* @return <20><>ʽ<EFBFBD><CABD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ַ<EFBFBD><D6B7><EFBFBD>
|
||
*/
|
||
public static String getSystemTimeByFormat(String dateFormat)
|
||
{
|
||
SimpleDateFormat sdf = new SimpleDateFormat(dateFormat);
|
||
return sdf.format(new Date());
|
||
}
|
||
|
||
public static String getSystemTimeByFormat(Date date, String dateFormat)
|
||
{
|
||
SimpleDateFormat sdf = new SimpleDateFormat(dateFormat);
|
||
return sdf.format(date);
|
||
}
|
||
|
||
/**
|
||
* @param dateStr
|
||
* <20><><EFBFBD><EFBFBD><EFBFBD>ַ<EFBFBD><D6B7><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>磺yyyy-MM-dd HH:mm:ss
|
||
* @param dateFormat
|
||
* <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ڸ<EFBFBD>ʽ<EFBFBD><CABD><EFBFBD><EFBFBD><EFBFBD>磺yyyy-MM-dd HH:mm:ss
|
||
* @return <20><>ʽ<EFBFBD><CABD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ַ<EFBFBD><D6B7><EFBFBD>
|
||
*/
|
||
public static Date getTimeByFormat(String dateStr, String dateFormat)
|
||
{
|
||
SimpleDateFormat sdf = new SimpleDateFormat(dateFormat);
|
||
Date date = null;
|
||
try {
|
||
date = sdf.parse(dateStr);
|
||
} catch (ParseException e) {
|
||
e.printStackTrace();
|
||
}
|
||
return date;
|
||
}
|
||
|
||
/**
|
||
* <20><>ȡ yyyy-MM-dd <20><><EFBFBD><EFBFBD>
|
||
* @param dateStr <20><><EFBFBD><EFBFBD>ʱ<EFBFBD><CAB1><EFBFBD>ַ<EFBFBD><D6B7><EFBFBD>
|
||
* @param dateFormat dateStr<74><72><EFBFBD>ַ<EFBFBD><D6B7><EFBFBD><EFBFBD><EFBFBD>ʽ
|
||
* @return ' yyyy-MM-dd '<27><>ʽ<EFBFBD><CABD><EFBFBD><EFBFBD>
|
||
*/
|
||
public static String getFormateDate(String dateStr, String dateFormat){
|
||
SimpleDateFormat sdf = new SimpleDateFormat(dateFormat);
|
||
Date date = null;
|
||
try {
|
||
date = sdf.parse(dateStr);
|
||
} catch (ParseException e) {
|
||
e.printStackTrace();
|
||
}
|
||
sdf = new SimpleDateFormat("yyyy/MM/dd");
|
||
return sdf.format(date);
|
||
|
||
}
|
||
|
||
}
|