/**
时间工具类
*/
public class DateUtils {
public static int getYear(String timeString) {
String timeStr = convertDate2String(parseTimeString2Date(timeString), "yyyy-MM-dd");
return Integer.parseInt(timeStr.substring(0, 4));
}
public static int getMonth(String timeString) {
String timeStr = convertDate2String(parseTimeString2Date(timeString), "yyyy-MM-dd");
return Integer.parseInt(timeStr.substring(5, 7));
}
public static int getDay(String timeString) {
String timeStr = convertDate2String(parseTimeString2Date(timeString), "yyyy-MM-dd");
return Integer.parseInt(timeStr.substring(8, 10));
}
public static Date parseTimeString2Date(String timeString) {
if ((timeString == null) || (timeString.equals(""))) {
return null;
}
Date date = null;
DateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd");
try {
date = new Date(dateFormat.parse(timeString).getTime());
} catch (Exception e) {
e.printStackTrace();
}
return date;
}
public static String convertDate2String(Date date, String pattern) {
if (date == null) {
return null;
}
DateFormat dateFormat = new SimpleDateFormat(pattern);
return dateFormat.format(date);
}
//获取本周第一天
public static String startWeek(){
Calendar calendar = Calendar.getInstance();
int min = calendar.getActualMinimum(Calendar.DAY_OF_WEEK); //获取周开始基准
int current = calendar.get(Calendar.DAY_OF_WEEK)-1; //获取当天周内天数
calendar.add(Calendar.DAY_OF_WEEK, min-current); //当天-基准,获取周开始日期
Date start = calendar.getTime();
String startDate =String.format("%tF",start);
return startDate;
}
//获取本周最后一天
public static String endtWeek(){
Calendar calendar = Calendar.getInstance();
int min = calendar.getActualMinimum(Calendar.DAY_OF_WEEK); //获取周开始基准
int current = calendar.get(Calendar.DAY_OF_WEEK)-1; //获取当天周内天数
calendar.add(Calendar.DAY_OF_WEEK, min-current); //当天-基准,获取周开始日期
calendar.add(Calendar.DAY_OF_WEEK, 6); //开始+6,获取周结束日期
Date end = calendar.getTime();
String endtDate=String.format("%tF",end);
return endtDate;
}
//获取本季度的第一天
public static String startQuarter() {
Calendar c = Calendar.getInstance();
int currentMonth = c.get(Calendar.MONTH) + 1;
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
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);
Date date = c.getTime();
String time = sdf.format(date);
return time;
}
//获取本季度的最后一天
public static String endQuarter() {
Calendar c = Calendar.getInstance();
int currentMonth = c.get(Calendar.MONTH) + 1;
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
if (currentMonth >= 1 && currentMonth <= 3) {
c.set(Calendar.MONTH, 2);
} else if (currentMonth >= 4 && currentMonth <= 6) {
c.set(Calendar.MONTH, 5);
} else if (currentMonth >= 7 && currentMonth <= 9) {
c.set(Calendar.MONTH, 8);
} else if (currentMonth >= 10 && currentMonth <= 12) {
c.set(Calendar.MONTH, 11);
}
c.set(Calendar.DATE, 31);
Date date = c.getTime();
String time = sdf.format(date);
return time;
}
}