import java.text.DateFormat;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Date;
public class DateUtil {
/**
* 默认日期格式
*/
public static String DEFAULT_FORMAT = "yyyy-MM-dd";
private static final SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd");
private static final SimpleDateFormat formatMs = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss.sss");
/**
* 格式化日期
* @param date 日期对象
* @return String 日期字符串
*/
public static String formatDate(Date date){
SimpleDateFormat f = new SimpleDateFormat(DEFAULT_FORMAT);
String sDate = f.format(date);
return sDate;
}
/**
* 格式化日期
* @param str 日期对象
* @return String 日期字符串
*/
public static Date formatDate(String str){
Date date = null;
try{
SimpleDateFormat f = new SimpleDateFormat(DEFAULT_FORMAT);
date = f.parse(str);
}catch (Exception e){
e.printStackTrace();
}
return date;
}
/**
* 获取某年第一天日期
* @param date 账期
* @return Date
*/
public static String getYearFirst(String date){
Calendar calendar = Calendar.getInstance();
calendar.clear();
calendar.set(Calendar.YEAR, Integer.parseInt(date.substring(0, 4)));
Date currYearFirst = calendar.getTime();
return formatDate(currYearFirst);
}
/**
* 获取上年第一天日期
* @param date 账期
* @return Date
*/
public static String getLastYearFirst(String date){
Calendar calendar = Calendar.getInstance();
calendar.clear();
calendar.set(Calendar.YEAR, Integer.parseInt(date.substring(0, 4)));
calendar.add(Calendar.YEAR, -1);
Date currYearFirst = calendar.getTime();
return formatDate(currYearFirst);
}
/**
* 获取某日的前一天日期
* @return Date
*/
public Date getDaysBefore(String dateString, int days) throws ParseException {
DateFormat dateFormat = new SimpleDateFormat("yyyyMMdd");
Date inputDate = dateFormat.parse(dateString);
Calendar cal = Calendar.getInstance();
cal.setTime(inputDate);
int dayOfYear = cal.get(Calendar.DAY_OF_YEAR);
cal.set(Calendar.DAY_OF_YEAR, dayOfYear -