Java常用时间格式转换方式 工具类

Java 常用时间转换格式方法
导入包文件

import java.text.SimpleDateFormat;
import java.time.*;
import java.time.format.DateTimeFormatter;
import java.time.format.DateTimeFormatterBuilder;
import java.time.temporal.TemporalAdjusters;
import java.util.Date;

格式化前N天时间

 /**
     * 格式化前N天时间
     *
     * @param daysToSubtract 前N天
     * @param pattern        格式
     * @return
     */
    public static String format(long daysToSubtract, String pattern) {
        LocalDateTime localDateTime = LocalDateTime.now();
        localDateTime = localDateTime.minusDays(daysToSubtract);
        return localDateTime.format(DateTimeFormatter.ofPattern(pattern));
    }

格式化当前时间

  /**
     * 格式化当前时间
     *
     * @param pattern
     * @return
     */
    public static String getNowDateFormat(String pattern) {
        LocalDateTime localDateTime = LocalDateTime.now();
        return localDateTime.format(DateTimeFormatter.ofPattern(pattern));
    }

获取当前时间

  /**
     * 获取当前时间
     *
     * @return
     */
    public static Date getNowDate() {
        LocalDateTime localDateTime = LocalDateTime.now();
        ZoneId zoneId = ZoneId.systemDefault();
        ZonedDateTime zonedDateTime = localDateTime.atZone(zoneId);
        Instant instant = zonedDateTime.toInstant();
        Date date = Date.from(instant);
        return date;
    }

校验时间字符串是否合法

 /**
     * 校验时间字符串是否合法
     *
     * @param dateStr the date str
     * @param pattern the pattern
     * @return the boolean
     */
    public static boolean validDateStr(String dateStr, String pattern) {
        try {
            LocalDate.parse(dateStr, new DateTimeFormatterBuilder().appendPattern(pattern).parseStrict().toFormatter());
            return true;
        } catch (Exception e) {
            return false;
        }
    }

判断时间是否月份最后一天

    /**
     * 是否月份最后一天
     *
     * @param date    日期
     * @param pattern 日期格式
     * @return
     */
    public static boolean isLastDayOfMonth(String date, String pattern) {
        LocalDate localDate = LocalDate.parse(date, DateTimeFormatter.ofPattern(pattern));
        // 获取月最后一天
        String lastDayOfMonth = localDate.with(TemporalAdjusters.lastDayOfMonth()).format(DateTimeFormatter.ofPattern(pattern));
        return lastDayOfMonth.equals(date);
    }

日期加天数

 /**
     * @param date      日期
     * @param pattern   日期格式
     * @param daysToAdd 增加天数
     * @return
     */
    public static String plusDays(String date, String pattern, long daysToAdd) {
        LocalDate localDate = LocalDate.parse(date, DateTimeFormatter.ofPattern(pattern));
        return localDate.plusDays(daysToAdd).format(DateTimeFormatter.ofPattern("yyyyMMdd"));
    }

时间往后一分钟

 /**
     * 时间往后一分钟
     *
     * @param dateTime
     * @return
     */
    public static String reduceTime(String dateTime) {
        try {
            SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
            Date date = simpleDateFormat.parse(dateTime);
            //1分钟
            long time = 1 * 60* 1000;
            //1分钟前的时间
            Date beforeDate = new Date(date.getTime() - time);
            return simpleDateFormat.format(beforeDate);
        } catch (Exception e) {

        }
        return null;
    }

获取当月最大时间,当月最后一天的23:59:59

  /* * 获取当月最大时间,当月最后一天的23:59:59
     *
     * @return
     */
    public static Date getMaxDateTimeOfMonth() {
        LocalDateTime localDateTime = LocalDateTime.now();
        //当月最后一天
        localDateTime = localDateTime.with(TemporalAdjusters.lastDayOfMonth());
        localDateTime = localDateTime.withHour(23);
        localDateTime = localDateTime.withMinute(59);
        localDateTime = localDateTime.withSecond(59);
        ZoneId zoneId = ZoneId.systemDefault();
        ZonedDateTime zonedDateTime = localDateTime.atZone(zoneId);
        Instant instant = zonedDateTime.toInstant();
        Date date = Date.from(instant);
        return date;
    }

获取月份1号的日期格式,例如20200501

  /**
     * 获取月份1号的日期格式
     *
     * @param monthsToSubtract 月份减N
     * @param pattern          日期格式
     * @return
     */
    public static String getFirstDayOfMonthDateFormat(long monthsToSubtract, String pattern) {
        LocalDate localDate = LocalDate.now();
        localDate = localDate.minusMonths(monthsToSubtract).with(TemporalAdjusters.firstDayOfMonth());
        return localDate.format(DateTimeFormatter.ofPattern(pattern));
    }

获取当前月的某天 \获取当前月份

    /**
     * 获取当前月份
     *
     * @return
     */
    public static int getNowMonth() {
        return LocalDate.now().getMonthValue();
    }
    /**
     * 获取当前月的某天
     *
     * @return
     */
    public static int getDayOfMonth() {
        return LocalDate.now().getDayOfMonth();
    }

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值