Java8 时间格式化

jdk8使用线程安全的格式化工具DateTimeFormatter,jdk8之前使用SimpleDateFormat作为格式化工具,但SimpleDateFormat是非线程安全的。下面的例子 把时间格式化与字符串解析为时间都列出来了,可以作为参考,如有其他需求大家可以自己扩展。

代码示例

    /**
     * 年月日格式 LocalDate\LocalDateTime
     * @param temporal
     * @return
     */
    public static String formatYYYYMMDD(TemporalAccessor temporal) {
        return format(temporal,"yyyy-MM-dd");
    }

    /**
     * 时分秒格式化
     * @param localTime
     * @return
     */
    public static String formatHHmmss(LocalTime localTime) {
        return format(localTime,"HH:mm:ss");
    }

    /**
     * 年月日时分秒格式 LocalDate\LocalDateTime
     * @param temporal
     * @return
     */
    public static String formatYMDHMS(TemporalAccessor temporal) {
        return format(temporal,"yyyy-MM-dd HH:mm:ss");
    }

    /**
     * 字符串解析成LocalDateTime
     * @param time
     * @param pattern
     * @return
     */
    public static LocalDateTime parseLocalDateTime(String time, String pattern) {
        DateTimeFormatter formatter = DateTimeFormatter.ofPattern(pattern);
        return LocalDateTime.parse(time,formatter);
    }

    /**
     * 字符串解析成LocalDate
     * @param time
     * @param pattern
     * @return
     */
    public static LocalDate parseLocalDate(String time, String pattern) {
        DateTimeFormatter formatter = DateTimeFormatter.ofPattern(pattern);
        return LocalDate.parse(time,formatter);
    }

    /**
     * 字符串解析成Date
     * @param time 格式化的时间
     * @param pattern 匹配的格式
     * @return
     */
    public static Date parse2Date(String time, String pattern) {
        DateTimeFormatter formatter = DateTimeFormatter.ofPattern(pattern);
        return Date.from(LocalDate.parse(time,formatter).atStartOfDay(ZoneId.systemDefault()).toInstant());
    }

    /**
     *格式化
     */
    private static String format(TemporalAccessor temporal, String pattern) {
        DateTimeFormatter formatter = DateTimeFormatter.ofPattern(pattern);
        return formatter.format(temporal);
    }
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值