常用工具类总结(一) 时间格式转换
常用工具类之一 时间格式相关
- 基础工具类
- 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);}
}
常用工具类总结(一) 时间格式转换相关推荐
- 工具类涉及数据库连接、格式转换、文件操作、发送邮件等等
工具类涉及数据库连接.格式转换.文件操作.发送邮件等等 数据库连接工具类 数据库连接工具类--仅仅获得连接对象 ConnDB.java import java.sql.Connection; impo ...
- JAVA常用工具类-【5】FFMPEG转换、分割、合并音频
1.JAVA操作音频 package com.day.util;import java.io.*; import java.util.*;public class AudioConvert {publ ...
- java中拼接xml方法_Java常用工具类,拼接XML格式的字符串,非常好用
import java.util.ArrayList; import java.util.Iterator; import java.util.LinkedHashMap; import java.u ...
- 项目经验分享——Java常用工具类集合 转
http://blog.csdn.net/xyw591238/article/details/51678525 写在前面 本文涉及的工具类部分是自己编写,另一部分是在项目里收集的.工具类涉及数据库连接 ...
- java inputtools_Java后台开发常用工具类
本文涉及的工具类部分是自己编写,另一部分是在项目里收集的.工具类涉及数据库连接.格式转换.文件操作.发送邮件等等.提高开发效率,欢迎收藏与转载. 数据库连接工具类 数据库连接工具类--仅仅获得连接对象 ...
- Android 常用工具类转换
Android 常用单位转换的工具类 1. 常用单位转换的工具类 /*** 常用单位转换的工具类*/ public class ViewUtil {private ViewUtil() {/** ca ...
- JAVA实现 PDF转换 常用工具类(html转PDF、PDF添加页码、PDF文件下载、PDF添加印章或者水印)
JAVA实现 PDF转换 常用工具类(html转PDF.PDF添加页码.PDF文件下载.PDF添加印章或者水印)可直接使用 package com.bestvike.util; import com. ...
- java file ip_java常用工具类 IP、File文件工具类
本文实例为大家分享了java常用工具类的具体实现代码,供大家参考,具体内容如下 IP工具类 package com.jarvis.base.util; import java.io.IOExcepti ...
- javascript 总结(常用工具类的封装)(转)
转载地址:http://dzblog.cn/article/5a6f48afad4db304be1e7a5f javascript 总结(常用工具类的封装) JavaScript 1. type 类型 ...
- javascript常用工具类整理(copy)
JavaScript常用工具类 类型 日期 数组 字符串 数字 网络请求 节点 存储 其他 1.类型 isString (o) { //是否字符串return Object.prototype.toS ...
最新文章
- 2018 ACM-ICPC 中国大学生程序设计竞赛线上赛 H题 Rock Paper Scissors Lizard Spock.(FFT字符串匹配)...
- at( ) [ ]
- NOIP2016普及组复赛第一题的AC程序加题解pascal
- JavaScript(十三)面向对象
- P4016 负载平衡问题(最小费用最大流)
- 洛谷——P1706 全排列问题
- 阶段3 1.Mybatis_03.自定义Mybatis框架_2.自定义Mybatis的分析-创建代理对象的分析
- 分享一篇去年的项目总结
- 小米笔记本适合计算机专业吗,真Pro还是假专业?细说小米新笔记本电脑五宗罪...
- [裴礼文数学分析中的典型问题与方法习题参考解答]5.1.23
- QQ自动发消息源代码
- 股基交易额市场份额(VMS)
- 微信小程序登陆踩坑记录
- Python字符串和列表常用的方法和操作
- Android设计之UI透明图标
- 微软媒体服务器,Azure 媒体服务概述
- 码绘与手绘——表达动态
- [手机分享]黑莓手机8系列分享之——黑莓88XX系列
- CityEngine制作玻璃材质反光效果
- LeetCode 13 罗马符号转化为数字(难度: Easy)