常用工具类之一 时间格式相关

  • 基础工具类
    • LocalDateTime与str的转换工具类
    • xml字段LocalDateTime/LocalDate与str的转换工具类

基础工具类

你好!今天起陆续总结日常使用到的工具类,第一篇和时间格式转换相关。

LocalDateTime与str的转换工具类

package com.taylor.common.util;import org.apache.commons.lang3.StringUtils;import java.time.LocalDate;
import java.time.LocalDateTime;
import java.time.format.DateTimeFormatter;
import java.time.format.DateTimeFormatterBuilder;
import java.time.temporal.ChronoField;/*** 报文字段LocalDateTime与str的转换工具类** @author taylor* @create 2019/12/24 11:54*/
public class TimeFormatUtil {/*** 日期formatter*/private static DateTimeFormatter dateFormatter = DateTimeFormatter.ofPattern("yyyyMMdd");/*** 时间formatter*/private static DateTimeFormatter timeFormatter = DateTimeFormatter.ofPattern("yyyyMMddHHmmss");private static DateTimeFormatter voFormatter = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss");private static DateTimeFormatter voMsFormatter = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SSS");private static DateTimeFormatter isoFormatter = DateTimeFormatter.ofPattern("yyyy-MM-dd'T'HH:mm:ss");/*** 带毫秒的时间formatter* jdk1.8中DateTimeFormatter在解析带毫秒的时间字符串「yyyyMMddHHmmssSSS」时有bug* https://bugs.openjdk.java.net/browse/JDK-8031085* jdk1.9中该问题已修复,目前使用DateTimeFormatterBuilder来处理毫秒问题*/private static DateTimeFormatter MSTimeFormatter = new DateTimeFormatterBuilder().appendPattern("yyyyMMddHHmmss").appendValue(ChronoField.MILLI_OF_SECOND, 3).toFormatter();/*** LocalDate转换为「yyyyMMdd」格式的字符串** @param date 日期* @return formatStr*/public static String formatDateToStr(LocalDate date) {if (date == null) {return null;}return dateFormatter.format(date);}/*** LocalDateTime转换为「yyyyMMddHHmmss」格式的字符串** @param time 时间* @return formatStr*/public static String formatTimeToStr(LocalDateTime time) {if (time == null) {return null;}return timeFormatter.format(time);}/*** LocalDateTime转换为「yyyyMMddHHmmssSSS」格式的字符串** @param time 时间* @return formatStr*/public static String formatMSTimeToStr(LocalDateTime time) {if (time == null) {return null;}return MSTimeFormatter.format(time);}/*** 解析「yyyyMMdd」格式的时间字符串为LocalDate** @param dateStr 日期字符串* @return LocalDate*/public static LocalDate parseStrToDate(String dateStr) {if (StringUtils.isBlank(dateStr)) {return null;}return LocalDate.parse(dateStr, dateFormatter);}/*** 解析「yyyyMMddHHmmss」格式的时间字符串为LocalDateTime** @param timeStr 时间字符串* @return LocalDateTime*/public static LocalDateTime parseStrToTime(String timeStr) {if (StringUtils.isBlank(timeStr)) {return null;}return LocalDateTime.parse(timeStr, timeFormatter);}/*** 解析「yyyyMMddHHmmssSSS」格式的时间字符串为LocalDateTime** @param timeStr 时间字符串* @return LocalDateTime*/public static LocalDateTime parseStrToMSTime(String timeStr) {if (StringUtils.isBlank(timeStr)) {return null;}return LocalDateTime.parse(timeStr, MSTimeFormatter);}/*** 报文时间字符串转换为ISO_LOCAL_DATE_TIME格式字符串,用于前端显示** @param time 报文时间字符串,格式YYYYMMDDhhmmss* @return java.lang.String ISO_LOCAL_DATE_TIME格式字符串*/public static String convertTimeToISOLocalDateTime(String time) {LocalDateTime localDateTime = LocalDateTime.parse(time, timeFormatter);return localDateTime.format(voFormatter);}/*** 带毫秒报文时间字符串转换为ISO_LOCAL_DATE_TIME格式字符串,用于前端显示** @param time 带毫秒报文时间字符串,格式:yyyyMMddHHmmssfff* @return java.lang.String ISO_LOCAL_DATE_TIME格式字符串*/public static String convertMSTimeToISOLocalDateTime(String time) {LocalDateTime localDateTime = LocalDateTime.parse(time, MSTimeFormatter);return localDateTime.format(voMsFormatter);}public static LocalDateTime convertISOStrTimeToLocalDateTime(String timeStr) {if (StringUtils.isEmpty(timeStr)) {return null;}return LocalDateTime.parse(timeStr, voMsFormatter);}
}

xml字段LocalDateTime/LocalDate与str的转换工具类

/*** 描述: LocalDate转换* 创建时间:2020年04月24日*/
package com.taylor.message.window.serializer;import org.apache.commons.lang3.StringUtils;import javax.xml.bind.annotation.adapters.XmlAdapter;
import java.time.LocalDate;
import java.time.format.DateTimeFormatter;/*** 类用途:LocalDate转换 金关二期报文规范中的date/datetime类型** @author taylor* @version [V1.0, 2020年04月24日]* @since [海关报文解析/金关二期]*/
public class JaxbLocalDateSerializer  extends XmlAdapter<String, LocalDate> {private static DateTimeFormatter dateFormatter = DateTimeFormatter.ofPattern("yyyy-MM-dd");@Overridepublic LocalDate unmarshal(String v) throws Exception {if (StringUtils.isBlank(v)) {return null;}return LocalDate.parse(v, dateFormatter);}@Overridepublic String marshal(LocalDate v) throws Exception {if (v == null) {return null;}return dateFormatter.format(v);}
}public class JaxbLocalDateSimpleSerializer  extends XmlAdapter<String, LocalDate> {private static DateTimeFormatter dateFormatter = DateTimeFormatter.ofPattern("yyyyMMdd");@Overridepublic LocalDate unmarshal(String v) throws Exception {if (StringUtils.isBlank(v)) {return null;}return LocalDate.parse(v, dateFormatter);}@Overridepublic String marshal(LocalDate v) throws Exception {if (v == null) {return null;}return dateFormatter.format(v);}
}public class JaxbLocalDateTimeSerializer  extends XmlAdapter<String, LocalDateTime> {private static DateTimeFormatter voFormatter = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss");@Overridepublic LocalDateTime unmarshal(String v) throws Exception {if (StringUtils.isBlank(v)) {return null;}return LocalDateTime.parse(v, voFormatter);}@Overridepublic String marshal(LocalDateTime v) throws Exception {if (v == null) {return null;}return voFormatter.format(v);}
}public class JaxbLocalDateTimeSimpleSerializer extends XmlAdapter<String, LocalDateTime> {private static DateTimeFormatter voFormatter = DateTimeFormatter.ofPattern("yyyyMMddHHmmss");@Overridepublic LocalDateTime unmarshal(String v) throws Exception {if (StringUtils.isBlank(v)) {return null;}return LocalDateTime.parse(v, voFormatter);}@Overridepublic String marshal(LocalDateTime v) throws Exception {if (v == null) {return null;}return voFormatter.format(v);}
}

常用工具类总结(一) 时间格式转换相关推荐

  1. 工具类涉及数据库连接、格式转换、文件操作、发送邮件等等

    工具类涉及数据库连接.格式转换.文件操作.发送邮件等等 数据库连接工具类 数据库连接工具类--仅仅获得连接对象 ConnDB.java import java.sql.Connection; impo ...

  2. JAVA常用工具类-【5】FFMPEG转换、分割、合并音频

    1.JAVA操作音频 package com.day.util;import java.io.*; import java.util.*;public class AudioConvert {publ ...

  3. java中拼接xml方法_Java常用工具类,拼接XML格式的字符串,非常好用

    import java.util.ArrayList; import java.util.Iterator; import java.util.LinkedHashMap; import java.u ...

  4. 项目经验分享——Java常用工具类集合 转

    http://blog.csdn.net/xyw591238/article/details/51678525 写在前面 本文涉及的工具类部分是自己编写,另一部分是在项目里收集的.工具类涉及数据库连接 ...

  5. java inputtools_Java后台开发常用工具类

    本文涉及的工具类部分是自己编写,另一部分是在项目里收集的.工具类涉及数据库连接.格式转换.文件操作.发送邮件等等.提高开发效率,欢迎收藏与转载. 数据库连接工具类 数据库连接工具类--仅仅获得连接对象 ...

  6. Android 常用工具类转换

    Android 常用单位转换的工具类 1. 常用单位转换的工具类 /*** 常用单位转换的工具类*/ public class ViewUtil {private ViewUtil() {/** ca ...

  7. JAVA实现 PDF转换 常用工具类(html转PDF、PDF添加页码、PDF文件下载、PDF添加印章或者水印)

    JAVA实现 PDF转换 常用工具类(html转PDF.PDF添加页码.PDF文件下载.PDF添加印章或者水印)可直接使用 package com.bestvike.util; import com. ...

  8. java file ip_java常用工具类 IP、File文件工具类

    本文实例为大家分享了java常用工具类的具体实现代码,供大家参考,具体内容如下 IP工具类 package com.jarvis.base.util; import java.io.IOExcepti ...

  9. javascript 总结(常用工具类的封装)(转)

    转载地址:http://dzblog.cn/article/5a6f48afad4db304be1e7a5f javascript 总结(常用工具类的封装) JavaScript 1. type 类型 ...

  10. javascript常用工具类整理(copy)

    JavaScript常用工具类 类型 日期 数组 字符串 数字 网络请求 节点 存储 其他 1.类型 isString (o) { //是否字符串return Object.prototype.toS ...

最新文章

  1. 2018 ACM-ICPC 中国大学生程序设计竞赛线上赛 H题 Rock Paper Scissors Lizard Spock.(FFT字符串匹配)...
  2. at( ) [ ]
  3. NOIP2016普及组复赛第一题的AC程序加题解pascal
  4. JavaScript(十三)面向对象
  5. P4016 负载平衡问题(最小费用最大流)
  6. 洛谷——P1706 全排列问题
  7. 阶段3 1.Mybatis_03.自定义Mybatis框架_2.自定义Mybatis的分析-创建代理对象的分析
  8. 分享一篇去年的项目总结
  9. 小米笔记本适合计算机专业吗,真Pro还是假专业?细说小米新笔记本电脑五宗罪...
  10. [裴礼文数学分析中的典型问题与方法习题参考解答]5.1.23
  11. QQ自动发消息源代码
  12. 股基交易额市场份额(VMS)
  13. 微信小程序登陆踩坑记录
  14. Python字符串和列表常用的方法和操作
  15. Android设计之UI透明图标
  16. 微软媒体服务器,Azure 媒体服务概述
  17. 码绘与手绘——表达动态
  18. [手机分享]黑莓手机8系列分享之——黑莓88XX系列
  19. CityEngine制作玻璃材质反光效果
  20. LeetCode 13 罗马符号转化为数字(难度: Easy)

热门文章

  1. css实现3d旋转图片魔方
  2. 3D 旋转相册 立方体的盒子 相册(源码分享)
  3. PM3环境搭建和M1卡复制
  4. java与javaw运行jar程序
  5. 波兰表达式 逆波兰表达式
  6. 安装JDK并配置环境变量(详细图文介绍)
  7. JS 如何实现获取本地文件夹名称
  8. 香橙派更改中文界面以及安装输入法
  9. html5 mp4文件查看,MP4Box 借用HTML5 file api 本地读取 mp4 头信息
  10. oracle sqlldr原理,oracle sqlldr 参数说明