1. 程式人生 > >Java常用時間格式轉換類

Java常用時間格式轉換類

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;
    }

}