java8で日付を取得するための一般的な方法

日付オブジェクトを取得する



    /**
     * 获取日期对象 yyyy-MM-dd HH:mm:ss
     *
     * @param dateTime yyyy-MM-dd
     * @return
     */
    public static Date getDateTime(String dateTime) throws Exception {
        SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");//设置日期格式
        return df.parse(dateTime);
    }

現在の日付を取得する

  /**
     * 获取当前日期,格式:yyyy-MM-dd
     *
     * @return
     */
    public static String getCurrentDate(String format) {
        SimpleDateFormat df = new SimpleDateFormat(format);//设置日期格式
        return df.format(new Date());
    }

週の最初の日を取得する

  /**
     * 获取本周第1天
     * <p>
     * 每星期第一天为:星期1,最后一天为星期日
     *
     * @return yyyy-mm-dd
     */
    public static String getMondayOfThisWeek() {
        return LocalDate.now().plusWeeks(0).with(DayOfWeek.MONDAY).toString();

    }

 

週の最後の日を取得する

    /**
     * 获取本周最后1天
     * 每星期第一天为:星期一,最后一天为星期日
     *
     * @return yyyy-mm-dd
     */
    public static String getWeeklastday() {
        return LocalDate.now().plusWeeks(0).with(DayOfWeek.SUNDAY).toString();
    }

 

前週の初日の時刻を取得する

  /**
     * 获取上周第一天的时间 yyyy-mm-dd
     * 每星期第一天为:星期一,最后一天为星期日
     *
     * @return yyyy-mm-dd
     */
    public static String getLastWeekFirstDay() {
        return LocalDate.now().plusWeeks(-1).with(DayOfWeek.MONDAY).toString();

    }

 

先週の最終日の時間を取得します

  /**
     * 获取上周最后一天的时间 yyyy-mm-dd
     * 每星期第一天为:星期一,最后一天为星期日
     *
     * @return yyyy-mm-dd
     */
    public static String getLastWeekEndDay() {
        return LocalDate.now().plusWeeks(-1).with(DayOfWeek.SUNDAY).toString();
    }

 

 

昨年の今週の開始時刻を取得します


    /**
     * 获取去年的本周的开始时间
     *
     * @return yyyy-mm-dd
     */
    public static String getLastYearThisWeekFirst() {
        return LocalDate.now().minusYears(1).with(DayOfWeek.MONDAY).toString();
    }

 

昨年の今週の終了時刻を取得します

   /**
     * 获取去年的本周的结束时间
     *
     * @return yyyy-mm-dd
     */
    public static String getLastYearThisWeekEnd() {
        return LocalDate.now().minusYears(1).with(DayOfWeek.SUNDAY).toString();

    }

 

月の最初の日を取得します

    /**
     * 获取本月第一天
     *
     * @return yyyy-mm-dd
     */
    public static String getThisMonthFirstDay() {
        return LocalDate.now().plusMonths(0).with(TemporalAdjusters.firstDayOfMonth()).toString();
    }

 

月の最終日を取得する


    /**
     * 获取本月最后一天
     *
     * @return yyyy-mm-dd
     */
    public static String getThisMonthEndDay() {
        return LocalDate.now().minusMonths(0).with(TemporalAdjusters.lastDayOfMonth()).toString();

    }

 

前月の初日を取得

  /**
     * 获取上月第一天
     *
     * @return yyyy-mm-dd
     */
    public static String getLastMonthFirstDay() {
        return LocalDate.now().plusMonths(-1).with(TemporalAdjusters.firstDayOfMonth()).toString();
    }

 

月の日数を取得する

  /**
     * 获取本月天数
     *
     * @return yyyy-mm-dd
     */
    public static int getThisMonthDayCount() {
        return LocalDate.now().with(TemporalAdjusters.lastDayOfMonth()).getDayOfMonth();
    }

 

 前月の日数を取得する

   /**
     * 获取上月天数
     *
     * @return yyyy-mm-dd
     */
    public static int getLastMonthDayCount() {
        return LocalDate.now().plusMonths(-1).with(TemporalAdjusters.lastDayOfMonth()).getDayOfMonth();
    }

 

前月の最終日を取得する

  /**
     * 获取上月最后一天
     * DateUtils
     *
     * @return yyyy-mm-dd
     */
    public static String getLastMonthEndDay() {
        return LocalDate.now().minusMonths(1).with(TemporalAdjusters.lastDayOfMonth()).toString();
    }

 

昨年の今月の開始時刻を取得する

   /**
     * 获取去年本月的开始时间
     *
     * @return yyyy-mm-dd
     */
    public static String getLastYearMonthStartDay() {
        return LocalDate.now().plusYears(-1).with(TemporalAdjusters.firstDayOfMonth()).toString();
    }

 

昨年の今月の終了時刻を取得します


    /**
     * 获取去年本月的结束时间
     *
     * @return yyyy-mm-dd
     */
    public static String getLastYearMonthEndDay() {
        return LocalDate.now().plusYears(-1).with(TemporalAdjusters.lastDayOfMonth()).toString();
    }

 

シーズンの初日を取得


    /**
     * 获取本季第一天
     *
     * @return yyyy-mm-dd
     */
    public static String getThisQuarterFirstDay() {
        LocalDate inputDate = LocalDate.parse(getCurrentDate());
        Month month = inputDate.getMonth();
        Month firstMonthOfQuarter = month.firstMonthOfQuarter();
        LocalDate localDate = LocalDate.of(inputDate.getYear(), firstMonthOfQuarter, 1);
        return localDate.toString();

    }

 

四半期の最終日を取得します

 /**
     * 获取本季度最后一天
     *
     * @return yyyy-mm-dd
     */
    public static String getThisQuarterEndDay() {
        LocalDate inputDate = LocalDate.parse(getCurrentDate());
        Month month = inputDate.getMonth();
        Month firstMonthOfQuarter = month.firstMonthOfQuarter();
        Month endMonthOfQuarter = Month.of(firstMonthOfQuarter.getValue() + 2);
        LocalDate localDate = LocalDate.of(inputDate.getYear(), endMonthOfQuarter, endMonthOfQuarter.length(inputDate.isLeapYear()));
        return localDate.toString();

    }

 

前四半期の初日を取得


    /**
     * 获取上季度第一天
     *
     * @return yyyy-mm-dd
     */
    public static String getLastQuarterFirstDay() {
        Calendar startCalendar = Calendar.getInstance();
        startCalendar.set(Calendar.MONTH, ((int) startCalendar.get(Calendar.MONTH) / 3 - 1) * 3);
        startCalendar.set(Calendar.DAY_OF_MONTH, 1);
        return DateUtils.getDateToStringStart(startCalendar.getTime(), DateFormatConstant.C_YYYY_MM_DD);

    }

 

前四半期の最終日を取得する

 /**
     * 获取上季度最后一天
     *
     * @return yyyy-mm-dd
     */
    public static String getLastQuarterEndDay() {
        Calendar endCalendar = Calendar.getInstance();
        endCalendar.set(Calendar.MONTH, ((int) endCalendar.get(Calendar.MONTH) / 3 - 1) * 3 + 2);
        endCalendar.set(Calendar.DAY_OF_MONTH, endCalendar.getActualMaximum(Calendar.DAY_OF_MONTH));
        return DateUtils.getDateToStringStart(endCalendar.getTime(), DateFormatConstant.C_YYYY_MM_DD);

    }

 

昨年、この四半期の開始日

   /**
     * 去年本季度开始日期
     *
     * @return yyyy-mm-dd
     */
    public static String getLastYearQuarterFirstDay() {
        SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
        Calendar c = Calendar.getInstance();
        c.setTime(new Date());
        c.add(Calendar.YEAR, -1);
        LocalDate inputDate = LocalDate.parse(getDateToString(c.getTime(), DateFormatConstant.C_YYYY_MM_DD));
        LocalDate localDate = LocalDate.of(inputDate.getYear(), inputDate.getMonth().firstMonthOfQuarter(), 1);
        return localDate.toString();
    }

 

この四半期の昨年の終了日


    /**
     * 去年本季度结束日期
     *
     * @return yyyy-mm-dd
     */
    public static String getLastYearQuarterEndDay() {
        SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
        Calendar c = Calendar.getInstance();
        c.setTime(new Date());
        c.add(Calendar.YEAR, -1);
        LocalDate inputDate = LocalDate.parse(getDateToString(c.getTime(), DateFormatConstant.C_YYYY_MM_DD));
        Month month = inputDate.getMonth();
        Month firstMonthOfQuarter = month.firstMonthOfQuarter();
        Month endMonthOfQuarter = Month.of(firstMonthOfQuarter.getValue() + 2);
        LocalDate localDate = LocalDate.of(inputDate.getYear(), endMonthOfQuarter, endMonthOfQuarter.length(inputDate.isLeapYear()));
        return localDate.toString();
    }

 

今年の最初の日である現在の時刻を取得します


    /**
     * 获取当前时间,年份第一天
     *
     * @return yyyy-mm-dd
     */
    public static String getThisYearFirstDay() {
        return LocalDate.now().plusYears(0).with(TemporalAdjusters.firstDayOfYear()).toString();
    }

 

現在の時刻、大晦日を取得します

   /**
     * 获取当前时间,年份最后一天
     *
     * @return yyyy-mm-dd
     */
    public static String getThisYearEndDay() {
        return LocalDate.now().plusYears(0).with(TemporalAdjusters.lastDayOfYear()).toString();
    }

 

昨年の初日を取得

  /**
     * 获取去年的第一天
     *
     * @return
     */
    public static String getLastYearFirstDay() {
        return LocalDate.now().plusYears(-1).with(TemporalAdjusters.firstDayOfYear()).toString();
    }

 

昨年の最終日を取得


    /**
     * 获取去年的最后一天
     * DateUtils
     *
     * @return
     */
    public static String getLastYearEndDay() {
        return LocalDate.now().plusYears(-1).with(TemporalAdjusters.lastDayOfYear()).toString();
    }

 

n日後の日付を取得する


    /**
     * 得到n天之后的日期
     *
     * @param days
     * @return yyyy-MM-dd 格式
     */
    public static String getAfterDayDate(String date, int days) throws Exception {
        SimpleDateFormat sdfd = new SimpleDateFormat("yyyy-MM-dd");
        Date inDate = sdfd.parse(date);

        Calendar canlendar = Calendar.getInstance(); // java.util包
        canlendar.setTime(inDate);
        canlendar.add(Calendar.DATE, days); // 日期减 如果不够减会将月变动
        Date outDate = canlendar.getTime();
        String dateStr = sdfd.format(outDate);

        return dateStr;
    }

 

nか月後の月を取得

  /**
     * 得到n个月之后的月份
     *
     * @param cnt
     * @return
     */
    public static String getAfterMonth(int cnt) {
        Calendar canlendar = Calendar.getInstance(); // java.util包
        canlendar.add(Calendar.MONTH, cnt); // 日期减 如果不够减会将月变动
        Date date = canlendar.getTime();

        SimpleDateFormat sdfd = new SimpleDateFormat("yyyyMM");
        String dateStr = sdfd.format(date);

        return dateStr;
    }

 

n時間後に日付を取得する


    /**
     * 获取n小时之后的日期
     *
     * @param date
     * @param hours
     * @param format
     * @return
     * @throws Exception
     */
    public static Date getAfterHourDate(Date date, int hours, String format) throws Exception {
        SimpleDateFormat sdfd = new SimpleDateFormat(format);
        String dateString = dateToStrLong(date, format);
        Date inDate = sdfd.parse(dateString);

        Calendar canlendar = Calendar.getInstance(); // java.util包
        canlendar.setTime(inDate);
        canlendar.add(Calendar.HOUR, hours);
        Date outDate = canlendar.getTime();
        String dateStr = sdfd.format(outDate);
        return fomatDate(dateStr, format);
    }

 

前日の日付を取得します

   /**
     * 获取前一天的日期
     *
     * @param timeFormat
     * @return
     */
    public static String getYesterdayByFormat(String timeFormat) {
        return LocalDateTime.now().plusDays(-1).format(DateTimeFormatter.ofPattern(timeFormat));
    }

 

 

おすすめ

転載: blog.csdn.net/qq_39999478/article/details/112993021
おすすめ