DateUtil
```
import java.text.ParseException;
import java.text.ParsePosition;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Calendar;
import java.util.Date;
import java.util.List;
import java.util.Locale;
public class DateUtil {
//自定义格式
public static final String STANDARD_FORMAT = "yyyy-MM-dd HH:mm:ss";
/**
* date类型进行格式化输出
* @param date
* @return
*/
public static String dateFormat(Date date) {
SimpleDateFormat formatter = new SimpleDateFormat(STANDARD_FORMAT);
String dateString = formatter.format(date);
return dateString;
}
/**
* 获取当前时间 yyyy-MM-dd HH:mm:ss
* @param
* @return
*/
public static String getNowDate() {
Calendar now = Calendar.getInstance();
return dateFormat(now.getTime());
}
/**
* date类型进行格式化输出
* @param date
* @return
*/
public static String dateFormat(Date date, String dateFormat) {
SimpleDateFormat formatter = new SimpleDateFormat(dateFormat);
String dateString = formatter.format(date);
return dateString;
}
/**
* 将"2020-09-16 9:08:06"型字符串转化为Date
* @param str
* @return
* @throws ParseException
*/
public static Date StringToDate(String str) throws ParseException{
SimpleDateFormat formatter = new SimpleDateFormat(STANDARD_FORMAT);
Date date = (Date) formatter.parse(str);
return date;
}
/**
* 将CST时间类型字符串进行格式化输出
* @param str
* @return
* @throws ParseException
*/
public static String CSTFormat(String str) throws ParseException{
SimpleDateFormat formatter = new SimpleDateFormat("EEE MMM dd HH:mm:ss zzz yyyy", Locale.US);
Date date = (Date) formatter.parse(str);
return dateFormat(date);
}
/**
* 将long类型转化为Date
* @param str
* @return
* @throws ParseException
*/
public static Date LongToDare(long str) throws ParseException{
return new Date(str * 1000);
}
/**
* 将字符串20200916转换为2020-09-16日期格式 针对一个的操作
* @param str
* @return
* @throws ParseException
*/
public static String StrToDate(String str) throws ParseException
{
SimpleDateFormat dateFormat=new SimpleDateFormat("yyyyMMdd");
SimpleDateFormat dateFormat2=new SimpleDateFormat("yyyy-MM-dd");
String result=dateFormat2.format(dateFormat.parse(str));
//System.err.println(result);
return result;
}
/**
* 将2020-09-16的字符串转换成20200916的格式 针对一个日期的操作
* @param dateStr
* @return
* @throws ParseException
*/
public static String DateToStr(String dateStr) throws ParseException
{
SimpleDateFormat dateFormat=new SimpleDateFormat("yyyy-MM-dd");
SimpleDateFormat dateFormat2=new SimpleDateFormat("yyyyMMdd");
Date parse = dateFormat.parse(dateStr);
String format = dateFormat2.format(parse);
return format;
}
/**
* 两个时间之间的天数
* 初始化的格式 2020-09-16
long days = getDays("2020-09-16", "2020-09-20");
* @param date1 2020-09-16
* @param date2 2020-09-20
* @return
*/
public static long getDays(String date1, String date2) {
if (date1 == null || date1.equals("")) {
return 0;
}
if (date2 == null || date2.equals("")) {
return 0;
}
// 转换为标准时间
SimpleDateFormat myFormatter = new SimpleDateFormat("yyyy-MM-dd");
Date date = null;
Date mydate = null;
try {
date = myFormatter.parse(date1);
mydate = myFormatter.parse(date2);
} catch (Exception e) {
}
long day = (date.getTime() - mydate.getTime()) / (24 * 60 * 60 * 1000);
return day;
}
/**
* 将短时间格式字符串转换为时间 yyyy-MM-dd
*
* @param strDate
* @return
*/
public static Date strToDate(String strDate) {
SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd");
ParsePosition pos = new ParsePosition(0);
Date strtodate = formatter.parse(strDate, pos);
return strtodate;
}
/**
* 根据一个日期,返回是星期几的字符串
*
* @param sdate
* @return
*/
public static String getWeek(String sdate) {
//System.out.println("sdate--->>>"+sdate);
// 再转换为时间
Date date = strToDate(sdate);
Calendar c = Calendar.getInstance();
c.setTime(date);
// int hour=c.get(Calendar.DAY_OF_WEEK);
// hour中存的就是星期几了,其范围 1~7
// 1=星期日 7=星期六,其他类推
return new SimpleDateFormat("EEEE").format(c.getTime());
}
/*
*某一天的日期转换
*/
public static String getWeekStr(String sdate) {
String str = "";
str = getWeek(sdate);
if ("1".equals(str)) {
str = "星期日";
} else if ("2".equals(str)) {
str = "星期一";
} else if ("3".equals(str)) {
str = "星期二";
} else if ("4".equals(str)) {
str = "星期三";
} else if ("5".equals(str)) {
str = "星期四";
} else if ("6".equals(str)) {
str = "星期五";
} else if ("7".equals(str)) {
str = "星期六";
}
return str;
}
/**
* List数据中 一次遍历多个日期
* @param sdate
* @return
*/
public static List getWeekStrArray(List sdate) {
System.out.println(sdate.size());
List list=new ArrayList<>();
String str = "";
for(int i=0;i<sdate.size();i++)
{
String object = (String)sdate.get(i);
str=getWeek(object);
list.add(str);
}
if ("1".equals(str)) {
str = "星期日";
} else if ("2".equals(str)) {
str = "星期一";
} else if ("3".equals(str)) {
str = "星期二";
} else if ("4".equals(str)) {
str = "星期三";
} else if ("5".equals(str)) {
str = "星期四";
} else if ("6".equals(str)) {
str = "星期五";
} else if ("7".equals(str)) {
str = "星期六";
}
return list;
}
}
```