博客
关于我
Java8日期格式化工具
阅读量:403 次
发布时间:2019-03-05

本文共 3372 字,大约阅读时间需要 11 分钟。

    Java 8 ??????? - DateUtil2    
package com.freedom.demo.utils;import lombok.extern.slf4j.Slf4j;import org.apache.commons.lang3.StringUtils;import java.text.DateFormat;import java.text.ParseException;import java.text.SimpleDateFormat;import java.time.LocalDate;import java.time.LocalDateTime;import java.time.format.DateTimeFormatter;import java.util.Calendar;import java.util.Date;import java.util.HashMap;import java.util.Map;/** * @author tobebetter9527 * @description ??????????Java8??????? * @create 2020/05/02 16:32 */@Slf4jpublic class DateUtil2 {    private DateUtil2() {    }    private static final String DATE_FORMAT = "yyyy-MM-dd";    private static final String DATETIME_FORMAT = "yyyy-MM-dd HH:mm:ss";    private static final ThreadLocal
> dateThreadLocal = new ThreadLocal<>(); /** * ??? LocalDate ? "yyyy-MM-dd" ?? * @param localDateTime * @return ???????? */ public static String formatDate(LocalDateTime localDateTime) { return format(localDateTime, DATE_FORMAT); } /** * ??? LocalDate ? "yyyy-MM-dd" ?? * @param localDate * @return ???????? */ public static String formatDate(LocalDate localDate) { return format(localDate, DATE_FORMAT); } /** * ??? LocalDateTime ? "yyyy-MM-dd HH:mm:ss" ?? * @param localDateTime * @return ???????? */ public static String formatDateTime(LocalDateTime localDateTime) { return format(localDateTime, DATETIME_FORMAT); } /** * ?????????????? * @param localDateTime ??? LocalDateTime ? LocalDate ?? * @param pattern ????? * @return ???????? */ public static String format(Object date, String pattern) { if (date == null) { throw new IllegalArgumentException("date can't be null"); } return format((java.time.TemporalAccessor) date, pattern); } /** * ?????????????? * @param dateStr ????? * @param pattern ????? * @return ???? LocalDate ? LocalDateTime ?? */ public static LocalDate parseDate(String dateStr, String pattern) { return LocalDate.parse(dateStr, getDateFormat(pattern)); } /** * ?????????????? * @param dateStr ????? * @param pattern ????? * @return ???? LocalDateTime ?? */ public static LocalDateTime parseDateTime(String dateStr, String pattern) { return LocalDateTime.parse(dateStr, getDateFormat(pattern)); } /** * ?? ThreadLocal ??? DateFormat ?? * @param pattern ????? * @return DateFormat ?? */ private static DateTimeFormatter getDateFormat(String pattern) { if (StringUtils.isBlank(pattern)) { throw new IllegalArgumentException("pattern can't be empty"); } Map
dateFormatMap = dateThreadLocal.get(); if (dateFormatMap != null && dateFormatMap.containsKey(pattern)) { return dateFormatMap.get(pattern); } synchronized (dateThreadLocal) { if (dateFormatMap == null) { dateFormatMap = new HashMap<>(); dateThreadLocal.set(dateFormatMap); } DateTimeFormatter formatter = DateTimeFormatter.ofPattern(pattern); dateFormatMap.put(pattern, formatter); dateThreadLocal.set(dateFormatMap); } return dateFormatMap.get(pattern); }}

转载地址:http://yphwz.baihongyu.com/

你可能感兴趣的文章
php实现逆转数组
查看>>
PHP实现页面静态化、纯静态化及伪静态化
查看>>
PHP对表单提交特殊字符的过滤和处理
查看>>
php对象引用和析构函数的关系
查看>>
RabbitMQ HTTP 认证后端项目常见问题解决方案
查看>>
PHP将图片转换成base64格式(优缺点)
查看>>
php将多个值的数组去除重复元素
查看>>
php局域网上传文件_PHP如何通过CURL上传文件
查看>>
PHP工具插件大全
查看>>
php布尔值的++
查看>>
PHP常量、变量作用域详解(一)
查看>>
PHP应用目录结构设计
查看>>
PHP应用程序连接MSQL数据库Demo(附crud程序)
查看>>
PHP开发api接口安全验证
查看>>
PHP开发规范PSR
查看>>
PHP开发遇到错误0001
查看>>
PHP引入了泛型和集合两大重要特性,大大改善 PHP 代码的可维护性和可读性
查看>>
PHP引擎php.ini参数优化
查看>>
PHP引用(&)使用详解
查看>>
php引用及垃圾回收
查看>>