Java 語言編寫的DateUtil時間工具類
阿新 • • 發佈:2022-03-05
Java語言編寫的DateUtil時間工具類,用於處理開發中時間的簡單處理問題。
Java語言編寫的DateUtil時間工具類
import java.text.ParseException; import java.text.SimpleDateFormat; import java.util.ArrayList; import java.util.Calendar; import java.util.Date; import java.util.List; public class DateUtil { //時間格式 public static final String PATTERN_YYYYMMDDHH = "yyyyMMddHH"; public static final String PATTERN_YYYY_MM_DDHHMM = "yyyy-MM-dd HH:mm"; /*** * 從yyyy-MM-dd HH:mm格式轉成yyyyMMddHH格式 * @param dateStr * @return */ public static String formatStr(String dateStr,String opattern,String npattern){ SimpleDateFormat simpleDateFormat = new SimpleDateFormat(opattern); try { Date date = simpleDateFormat.parse(dateStr); simpleDateFormat = new SimpleDateFormat(npattern); return simpleDateFormat.format(date); } catch (ParseException e) { e.printStackTrace(); } return null; } /*** * 獲取指定日期的凌晨 * @return */ public static Date toDayStartHour(Date date){ Calendar calendar = Calendar.getInstance(); calendar.setTime(date); calendar.set(Calendar.HOUR_OF_DAY, 0); calendar.set(Calendar.MINUTE, 0); calendar.set(Calendar.SECOND, 0); calendar.set(Calendar.MILLISECOND, 0); Date start = calendar.getTime(); return start; } /*** * 時間增加N分鐘 * @param date * @param minutes * @return */ public static Date addDateMinutes(Date date,int minutes){ Calendar calendar = Calendar.getInstance(); calendar.setTime(date); calendar.add(Calendar.MINUTE, minutes);// 24小時制 date = calendar.getTime(); return date; } /*** * 時間遞增N小時 * @param hour * @return */ public static Date addDateHour(Date date,int hour){ Calendar calendar = Calendar.getInstance(); calendar.setTime(date); calendar.add(Calendar.HOUR, hour);// 24小時制 date = calendar.getTime(); return date; } /*** * 獲取時間選單 * @return */ public static List<Date> getDateMenus(){ //定義一個List<Date>集合,儲存所有時間段 List<Date> dates = getDates(12); //判斷當前時間屬於哪個時間範圍 Date now = new Date(); for (Date cdate : dates) { //開始時間<=當前時間<開始時間+2小時 if(cdate.getTime()<=now.getTime() && now.getTime()<addDateHour(cdate,2).getTime()){ now = cdate; break; } } //當前需要顯示的時間選單 List<Date> dateMenus = new ArrayList<Date>(); for (int i = 0; i <5 ; i++) { dateMenus.add(addDateHour(now,i*2)); } return dateMenus; } /*** * 指定時間往後N個時間間隔 * @param hours * @return */ public static List<Date> getDates(int hours) { List<Date> dates = new ArrayList<Date>(); //迴圈12次 Date date = toDayStartHour(new Date()); //凌晨 for (int i = 0; i <hours ; i++) { //每次遞增2小時,將每次遞增的時間存入到List<Date>集合中 dates.add(addDateHour(date,i*2)); } return dates; } /*** * 時間轉成yyyyMMddHH * @param date * @param pattern * @return */ public static String data2str(Date date, String pattern){ SimpleDateFormat simpleDateFormat = new SimpleDateFormat(pattern); return simpleDateFormat.format(date); } public static void main(String[] args) { List<Date> dateMenus = DateUtil.getDateMenus(); for (Date dateMenu : dateMenus) { System.out.println(DateUtil.data2str(dateMenu,DateUtil.PATTERN_YYYYMMDDHH)); System.out.println(DateUtil.data2str(DateUtil.addDateHour(dateMenu,2),DateUtil.PATTERN_YYYYMMDDHH)); System.out.println("*************"); } } }