時間工具類DateUtils
阿新 • • 發佈:2021-01-17
文章目錄
根據兩個時間獲取時間內的具體日期
public static List<String> getPerDay(String startTime, String endTime ) throws ParseException { DateFormat df = new SimpleDateFormat("yyyy-MM-dd"); Date sTime = df.parse(startTime); Date eTime = df.parse(endTime); //定義一個接受時間的集合 List<String> lDate = new ArrayList<>(16); lDate.add(startTime); Calendar calBegin = Calendar.getInstance(); // 使用給定的 Date 設定此 Calendar 的時間 calBegin.setTime(sTime); Calendar calEnd = Calendar.getInstance(); // 使用給定的 Date 設定此 Calendar 的時間 calEnd.setTime(eTime); // 測試此日期是否在指定日期之後 while (eTime.after(calBegin.getTime())) { // 根據日曆的規則,為給定的日曆欄位新增或減去指定的時間量 calBegin.add(Calendar.DAY_OF_MONTH, 1); Date currentTime = calBegin.getTime(); SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd"); String dateString = formatter.format(currentTime); lDate.add(dateString); } return lDate; }
執行結果
根據某個日期返回該日期對應是周幾
public static String getWeekDay(String dateTime) throws ParseException { String[] weekDays = {"星期日", "星期一", "星期二", "星期三", "星期四", "星期五", "星期六"}; SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd"); Date currentDate = formatter.parse(dateTime); Calendar cal = Calendar.getInstance(); cal.setTime(currentDate); int w = cal.get(Calendar.DAY_OF_WEEK) - 1; return weekDays[w]; }
比較兩個時間的先後
public static Boolean validationDate(String beforeTime,String afterTime){ Boolean result =null; SimpleDateFormat formatter = new SimpleDateFormat("HH:mm"); log.info("時間比較:"+"beforeTime:"+beforeTime+"-afterTime:"+afterTime); try { if (formatter.parse(beforeTime).before(formatter.parse(afterTime))){ log.info("返回結果:true"); result = true; }else { log.info("返回結果:false"); result = false; } } catch (ParseException e) { e.printStackTrace(); } return result; }
可以通過設定日期格式來具體設定比較的時間
獲取昨天日期
public static String getYestDay(){
DateFormat df = new SimpleDateFormat("yyyy-MM-dd");
Date date = new Date();
Calendar calendar = Calendar.getInstance();
calendar.setTime(date);
calendar.add(Calendar.DAY_OF_MONTH, -1);
date = (Date) calendar.getTime();
String format = df.format(date);
return format;
}
獲取今天日期
public static String getToday(){
DateFormat df = new SimpleDateFormat("yyyy-MM-dd");
Date date = new Date();
Calendar calendar = Calendar.getInstance();
calendar.setTime(date);
calendar.add(Calendar.DAY_OF_MONTH, 0);
date = (Date) calendar.getTime();
String format = df.format(date);
return format;
}
修改時間日期
public static String dealDate(String oldDateStr) throws ParseException {
DateFormat df = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss");
Date date = df.parse(oldDateStr);
SimpleDateFormat df1 = new SimpleDateFormat ("EEE MMM dd HH:mm:ss Z yyyy", Locale.UK);
Date date1 = df1.parse(date.toString());
DateFormat df2 = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
return df2.format(date1);
}
計算兩個時間差
public static long CalTime(String time1, String time2) {
DateFormat df = new SimpleDateFormat("HH:mm");
long minutes = 0L;
try {
Date d1 = df.parse(time1);
Date d2 = df.parse(time2);
// 這樣得到的差值是微秒級別
long diff = d1.getTime() - d2.getTime();
minutes = diff / (1000 * 60);
} catch (ParseException e) {
System.out.println("抱歉,時間日期解析出錯。");
}
return minutes;
}
以上方法用到的包,可自行來這裡cv
import java.text.DateFormat;
import java.text.ParseException;
import java.util.ArrayList;
import java.util.Calendar;
import java.util.Date;
import java.util.List;
import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Locale;