Java常用時間格式轉換類
阿新 • • 發佈:2019-01-29
package com.jeesite.modules.util; import java.text.ParseException; import java.text.SimpleDateFormat; import java.time.LocalDate; import java.time.format.DateTimeFormatter; import java.util.Calendar; import java.util.Date; import java.util.HashMap; import java.util.Map; public class DateUtil { public static String minusDays(String date, int days){ DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd"); LocalDate localDate = LocalDate.parse(date, formatter); LocalDate prevDay = localDate.minusDays(days); return prevDay.format(formatter); } /** * @Description: 獲取當前時間字串 * @Author: psw * @CreateDate: 2018/10/12 15:45 * @UpdateUser: psw * @UpdateDate: 2018/10/12 15:45 * @UpdateRemark: 修改內容 */ public static String currentDate(){ //我要獲取當前的日期 Date date = new Date(); //設定要獲取到什麼樣的時間 SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); //獲取String型別的時間 String createdate = sdf.format(date); return createdate; } /** * 獲得指定日期的前一天 * @param specifiedDay * @return * @throws Exception */ public static String getSpecifiedDayBefore(String specifiedDay){ //SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd"); Calendar c = Calendar.getInstance(); Date date=null; try { date = new SimpleDateFormat("yy-MM-dd").parse(specifiedDay); } catch (ParseException e) { e.printStackTrace(); } c.setTime(date); int day=c.get(Calendar.DATE); c.set(Calendar.DATE,day-1); String dayBefore=new SimpleDateFormat("yyyy-MM-dd").format(c.getTime()); return dayBefore; } // string型別轉換為date型別 // strTime要轉換的string型別的時間,formatType要轉換的格式yyyy-MM-dd HH:mm:ss//yyyy年MM月dd日 // HH時mm分ss秒, // strTime的時間格式必須要與formatType的時間格式相同 public static Date stringToDate(String strTime) { Date date = null; try { SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); date = formatter.parse(strTime); return date; } catch (ParseException e) { e.printStackTrace(); } return date; } /** * 日期轉換為字串 * @param date * @return */ public static String DateToStr(Date date) { SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd"); String str = format.format(date); return str; } /** * 獲取一週中的第一天和最後一天 * @return */ public static Map getWeekMonAndSun() { Map map = new HashMap(); Calendar cal = Calendar.getInstance(); SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd"); cal.add(Calendar.DATE, -1); cal.set(Calendar.DAY_OF_WEEK, Calendar.MONDAY); // 獲取本週一的日期 map.put("monday", df.format(cal.getTime())); // 這種輸出的是上個星期週日的日期,因為老外那邊把週日當成第一天 cal.add(Calendar.DATE, -1); cal.set(Calendar.DAY_OF_WEEK, Calendar.SUNDAY); // 增加一個星期,才是我們中國人理解的本週日的日期 cal.add(Calendar.WEEK_OF_YEAR, 1); map.put("sunday", df.format(cal.getTime())); return map; } /** * 上一週的第一天 * @return */ public static String getMonday() { Calendar cal = Calendar.getInstance(); cal.setFirstDayOfWeek(Calendar.MONDAY);//將每週第一天設為星期一,預設是星期天 cal.add(Calendar.DATE, -1*7); cal.set(Calendar.DAY_OF_WEEK,Calendar.MONDAY); String monday = new SimpleDateFormat("yyyy-MM-dd").format(cal.getTime()); return monday; } /** * 上一週的最後一天 * */ public static String getSunday() { Calendar cal = Calendar.getInstance(); cal.setFirstDayOfWeek(Calendar.MONDAY);//將每週第一天設為星期一,預設是星期天 cal.add(Calendar.DATE, -1*7); cal.set(Calendar.DAY_OF_WEEK, Calendar.SUNDAY); String sunday = new SimpleDateFormat("yyyy-MM-dd").format(cal.getTime()); return sunday; } /** * 上一週的第一天 * @return */ public static String getBeforeLastMonday() { Calendar cal = Calendar.getInstance(); cal.setFirstDayOfWeek(Calendar.MONDAY);//將每週第一天設為星期一,預設是星期天 cal.add(Calendar.DATE, -2*7); cal.set(Calendar.DAY_OF_WEEK,Calendar.MONDAY); String monday = new SimpleDateFormat("yyyy-MM-dd").format(cal.getTime()); return monday; } /** * 上一週的最後一天 * */ public static String getBeforeLastSunday() { Calendar cal = Calendar.getInstance(); cal.setFirstDayOfWeek(Calendar.MONDAY);//將每週第一天設為星期一,預設是星期天 cal.add(Calendar.DATE, -2*7); cal.set(Calendar.DAY_OF_WEEK, Calendar.SUNDAY); String sunday = new SimpleDateFormat("yyyy-MM-dd").format(cal.getTime()); return sunday; } }