LocalDate 和 String、Date之间的转换

参考其他用法链接: LocalDate用法

获取当前时间加减后的日期

	private static final String DETAIL_FORMAT_STRING = "yyyy-MM-dd HH:mm:ss";

    private static final String PROBABLY_FORMAT_STRING = "yyyy-MM-dd";

    private static final String DETAIL_REGEX = "(0[0-9]|1[0-9]|2[0-3]):(0[0-9]|[1-5][0-9]):(0[0-9]|[1-5][0-9])";

    private static final String PROBABLY_REGEX = "\\d{4}-(0[1-9]|1[0-2])-(0[1-9]|1[0-9]|2[0-9]|3[0|1])";
    
/**
     * 格式化 LocalDate 为 String
     *
     * @param localDate 将要格式化的日期
     * @return 例如,  2020-04-03
     */
    public static String localDateToString(LocalDate localDate) {
        return DateTimeFormatter.ofPattern(PROBABLY_FORMAT_STRING).format(localDate);
    }


    /**
     * 格式化 LocalDateTime 为 String
     *
     * @param localDateTime 将要格式化的日期
     * @return 例如,  2020-04-03 14:12:02
     */
    public static String localDateTimeToString(LocalDateTime localDateTime) {
        return DateTimeFormatter.ofPattern(DETAIL_FORMAT_STRING).format(localDateTime);
    }

    /**
     * 字符串格式化为日期,字符串必须符合 yyyy-MM-dd 格式
     *
     * @param s 将要 LocalDate 化的字符串
     * @return LocalDate
     */
    public static LocalDate stringToLocalDate(String s) {
        return stringNotNull(s) && Pattern.matches(PROBABLY_REGEX, s) ?
                LocalDate.parse(s, DateTimeFormatter.ofPattern(PROBABLY_FORMAT_STRING)) : null;
    }

    /**
     * 字符串格式化为日期,字符串必须符合 "yyyy-MM-dd HH:mm:ss" 格式
     * 不支持 24:00:00 格式,需要转换为 00:00:00
     *
     * @param s 将要 LocalDateTime 化的字符串
     * @return LocalDateTime
     */
    public static LocalDateTime stringToLocalDateTime(String s) {
        return stringNotNull(s) && Pattern.matches(PROBABLY_REGEX + " " + DETAIL_REGEX, s) ?
                LocalDateTime.parse(s, DateTimeFormatter.ofPattern(DETAIL_FORMAT_STRING)) : null;
    }

    private static boolean stringNotNull(String s) {
        return null != s && s.length() > 0 && !"NULL".equals(s) && !"null".equals(s) && !"''".equals(s) && !"\"\"".equals(s);
    }
    

在这里插入图片描述
在这里插入图片描述

LocalDate

用于处理日期,yyyy-MM-dd格式。
LocalDate的基本用法
项目Value
LocalDate localDate = LocalDate.now();获取当前日期
String format = LocalDate.now().format(DateTimeFormatter.ofPattern(“yyyy-MM-dd”));LocalDate转String
LocalDate parse = LocalDate.parse(“2020-01-17”, DateTimeFormatter.ofPattern(“yyyy-MM-dd”));String转LocalDate
Date date = Date.from(LocalDate.now().atStartOfDay(ZoneId.systemDefault()).toInstant());LocalDate转Date
LocalDate localDate = new Date().toInstant().atZone(ZoneId.systemDefault()).toLocalDate();Date转LocalDate

LocalTime

用于处理时间,HH:mm:ss格式。
LocalTime的基本用法
项目Value
LocalTime now = LocalTime.now();获取当前时间
String format = LocalTime.now().format(DateTimeFormatter.ofPattern(“HH:mm:ss”));LocalTime转String
LocalTime parse = LocalTime.parse(“14:32:24”, DateTimeFormatter.ofPattern(“HH:mm:ss”));String转LocalTime
LocalTime localTime = new Date().toInstant().atZone(ZoneId.systemDefault()).toLocalTime();Date转LocalTime

LocalDateTime

用于处理 yyyy-MM-dd HH:mm:ss格式的时间
LocalDateTime的基本用法
项目Value
LocalDateTime localDateTime= LocalDateTime.now();获取当前时间
LocalDateTime.now().format(DateTimeFormatter.ofPattern(“yyyy-MM-dd HH:mm:ss”))LocalDateTime转String
LocalDateTime parse = LocalDateTime.parse(“2020-01-17 11:52:04”, DateTimeFormatter.ofPattern(“yyyy-MM-dd HH:mm:ss”));String转LocalDateTime
Date from = Date.from(LocalDateTime.now().atZone(ZoneId.systemDefault()).toInstant());LocalDateTime转Date
LocalDateTime localDateTime = LocalDateTime.ofInstant(new Date().toInstant(), ZoneId.systemDefault());
  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值