2018-06-03 22:26:41 +08:00

170 lines
4.6 KiB
Java
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

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);
}
}