因为用到的工具时间类比较,所以把写的都拿来放一块了,分享下
public class DateTool {
private final static SimpleDateFormat shortSdf = new SimpleDateFormat("yyyy-MM-dd");
private final static SimpleDateFormat longHourSdf = new SimpleDateFormat("yyyy-MM-dd HH");;
private final static SimpleDateFormat longSdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");;
public static String formatDate(Date date,String format){
String result="";
SimpleDateFormat sdf=new SimpleDateFormat(format);
if(date!=null){
result=sdf.format(date);
}
return result;
}
public static Date formatString(String str,String format) throws Exception{
if(StringTool.isEmpty(str)){
return null;
}
SimpleDateFormat sdf=new SimpleDateFormat(format);
return sdf.parse(str);
}
public static String getCurrentDateStr() throws Exception{
Date date=new Date();
SimpleDateFormat sdf=new SimpleDateFormat("yyyyMMddhhmmss");
return sdf.format(date);
}
/**
* yyyy-MM-dd HH:mm:ss
* @return
*/
public static String getTime(){
SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
String time=formatter.format(new Date());
return time;
}
/**
* yyyy-MM-dd
* @return
*/
public static String getDate(){
SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd");
String time=formatter.format(new Date());
return time;
}
/**
* 返回星期数
* @Description: TODO
* @param @return
* @return int
* @throws
*/
public static int getWeek(){
Calendar c = Calendar.getInstance();
// 今天是一周中的第几天
int dayOfWeek = c.get(Calendar.DAY_OF_WEEK );
return dayOfWeek;
}
/**
* 返回本周七天的日期
* @Description: TODO
* @param @return
* @return String[]
* @throws
*/
public static String[] getWeekDays(){
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
Calendar c = Calendar.getInstance();
// 今天是一周中的第几天
int dayOfWeek = c.get(Calendar.DAY_OF_WEEK );
if (c.getFirstDayOfWeek() == Calendar.SUNDAY) {
c.add(Calendar.DAY_OF_MONTH, 1);
}
// 计算一周开始的日期
c.add(Calendar.DAY_OF_MONTH, -dayOfWeek);
String[] weekDays = new String[7];
for (int i=0;i<7;i++) {
c.add(Calendar.DAY_OF_MONTH, 1);
weekDays[i] = sdf.format(c.getTime());
}
return weekDays;
}
/**
* 获取相差时间,以分为单位
* @param starttime
* @param endtime
* @return
* @throws ParseException
*/
public static int getMinute(String starttime,String endtime) throws ParseException{
SimpleDateFormat format1 = new SimpleDateFormat("HH:mm");
SimpleDateFormat format2 = new SimpleDateFormat("HH:mm");
long time1=format1.parse(starttime).getTime();
long time2=format2.parse(endtime).getTime();
int minute=(int) ((time2-time1)/(1000*60));
return minute;
}
/**
* 分钟相加
* @param starttime
* @param intervaltime
* @return
* @throws ParseException
*/
public static String addMinute(String starttime,int intervaltime) throws ParseException{
SimpleDateFormat sdf = new SimpleDateFormat("HH:mm");
int b=intervaltime*60*1000;
long result = sdf.parse(starttime).getTime() + (b);
Date d1 = new Date(result);
return sdf.format(d1).toString();
}
/**
* 获取当前是第几季度
* 1 第一季度 2 第二季度 3 第三季度 4 第四季度
* 一季度是1月1日到3月31日;二季度是4月1日到6月30;三季度是7月1到9月30;四季度是10月1到12月31。
* @param date
* @return
*/
public static int getSeason(Date date) {
int season = 0;
Calendar c = Calendar.getInstance();
c.setTime(date);
int month = c.get(Calendar.MONTH);
switch (month) {
case Calendar.JANUARY:
case Calendar.FEBRUARY:
case Calendar.MARCH:
season = 1;
break;
case Calendar.APRIL:
case Calendar.MAY:
case Calendar.JUNE:
season = 2;
break;
case Calendar.JULY:
case Calendar.AUGUST:
case Calendar.SEPTEMBER:
season = 3;
break;
case Calendar.OCTOBER:
case Calendar.NOVEMBER:
case Calendar.DECEMBER:
season = 4;
break;
default:
break;
}
return season;
}
/**
* 获取当前季度开始时间
* @return
*/
public static String getCurrentQuarterStartTime() {
Calendar c = Calendar.getInstance();
int currentMonth = c.get(Calendar.MONTH) + 1;
String now="";
try {
if (currentMonth >= 1 && currentMonth <= 3)
c.set(Calendar.MONTH, 0);
else if (currentMonth >= 4 && currentMonth <= 6)
c.set(Calendar.MONTH, 3);
else if (currentMonth >= 7 && currentMonth <= 9)
c.set(Calendar.MONTH, 4);
else if (currentMonth >= 10 && currentMonth <= 12)
c.set(Calendar.MONTH, 9);
c.set(Calendar.DATE, 1);
now = shortSdf.format(c.getTime()) +" 00:00:00";
} catch (Exception e) {
e.printStackTrace();
}
return now;
}
/**
* 获取当前季度结束时间
* @return
*/
public static String getCurrentQuarterEndTime() {
Calendar c = Calendar.getInstance();
int currentMonth = c.get(Calendar.MONTH) + 1;
String now="";
try {
if (currentMonth >= 1 && currentMonth <= 3) {
c.set(Calendar.MONTH, 2);
c.set(Calendar.DATE, 31);
} else if (currentMonth >= 4 && currentMonth <= 6) {
c.set(Calendar.MONTH, 5);
c.set(Calendar.DATE, 30);
} else if (currentMonth >= 7 && currentMonth <= 9) {
c.set(Calendar.MONTH, 8);
c.set(Calendar.DATE, 30);
} else if (currentMonth >= 10 && currentMonth <= 12) {
c.set(Calendar.MONTH, 11);
c.set(Calendar.DATE, 31);
}
now = shortSdf.format(c.getTime()) + " 23:59:59";
} catch (Exception e) {
e.printStackTrace();
}
return now;
}
/**
*
*日期加几月
*
**/
public static String dateAddMonth(String str,int mon) throws Exception {
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
Date dt = sdf.parse(str);
Calendar rightNow = Calendar.getInstance();
rightNow.setTime(dt);
rightNow.add(Calendar.MONTH, mon);// 日期加几个月 //
Date dt1 = rightNow.getTime();
String reStr = sdf.format(dt1);
return reStr;
}
/**
*
*日期加几天
*
**/
public static String dateAddDay(String str,int day) throws Exception {
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
Date dt = sdf.parse(str);
Calendar rightNow = Calendar.getInstance();
rightNow.setTime(dt);
rightNow.add(Calendar.DAY_OF_MONTH, day);// 日期加几个月 //
Date dt1 = rightNow.getTime();
String reStr = sdf.format(dt1);
return reStr;
}
}