项目中经常需要将DateTime转化成各种格式的String类型,或将各种类型的String转为DateTime类型。

  本文提供一个DateTime与String的转换工具类:

import org.apache.commons.lang3.StringUtils;
import org.joda.time.DateTime;
import org.joda.time.DateTimeZone;
import org.joda.time.format.DateTimeFormat;
import org.joda.time.format.DateTimeFormatter;import java.util.Date;
import java.util.TimeZone;public class DateTimeUtils {private static final DateTimeFormatter fmt_yyyyMMddHHmmssSSS = DateTimeFormat.forPattern("yyyy-MM-dd HH:mm:ss.SSS");private static final DateTimeFormatter fmt_yyyyMMddHHmmss = DateTimeFormat.forPattern("yyyy-MM-dd HH:mm:ss");private static final DateTimeFormatter fmt_yyyyMMddHHmm = DateTimeFormat.forPattern("yyyy-MM-dd HH:mm");private static final DateTimeFormatter fmt_yyyyMMdd = DateTimeFormat.forPattern("yyyy-MM-dd");private static final DateTimeFormatter fmt_HHmmss = DateTimeFormat.forPattern("HH:mm:ss");private static final DateTimeFormatter fmt_HHmm = DateTimeFormat.forPattern("HH:mm");private static final DateTimeFormatter fmt_yyyyMMddHHmmss_noSplit = DateTimeFormat.forPattern("yyyyMMddHHmmss");private static final DateTimeFormatter fmt_yyyyMMddHHmm_noSplit = DateTimeFormat.forPattern("yyyyMMddHHmm");private static final DateTimeFormatter fmt_yyyyMMdd_noSplit = DateTimeFormat.forPattern("yyyyMMdd");private static final DateTimeFormatter fmt_HHmmss_noSplit = DateTimeFormat.forPattern("HHmmss");private static final DateTimeFormatter fmt_HHmm_noSplit = DateTimeFormat.forPattern("HHmm");private static final DateTimeFormatter fmt_YYYYMMDDHHMM = DateTimeFormat.forPattern("yyyyMMdd HH:mm");private static final DateTimeZone timeZone = DateTimeZone.forTimeZone(TimeZone.getTimeZone("GMT+8"));public static String fmtYyyyMMddHHmmss(DateTime d) {return fmt_yyyyMMddHHmmss.print(d.withZone(timeZone));}public static String fmtYyyyMMddHHmm(DateTime d) {return fmt_yyyyMMddHHmm.print(d.withZone(timeZone));}public static String fmtYyyyMMdd(DateTime d) {return fmt_yyyyMMdd.print(d.withZone(timeZone));}public static String fmtHHmmss(DateTime d) {return fmt_HHmmss.print(d.withZone(timeZone));}public static String fmtHHmm(DateTime d) {return fmt_HHmm.print(d.withZone(timeZone));}// 无分隔符public static String fmtYyyyMMddHHmmss_noSplit(DateTime d) {return fmt_yyyyMMddHHmmss_noSplit.print(d.withZone(timeZone));}public static String fmtYyyyMMddHHmm_noSplit(DateTime d) {return fmt_yyyyMMddHHmm_noSplit.print(d.withZone(timeZone));}public static String fmtYyyyMMdd_noSplit(DateTime d) {return fmt_yyyyMMdd_noSplit.print(d.withZone(timeZone));}public static String fmtHHmmss_noSplit(DateTime d) {return fmt_HHmmss_noSplit.print(d.withZone(timeZone));}public static String fmtHHmm_noSplit(DateTime d) {return fmt_HHmm_noSplit.print(d.withZone(timeZone));}public static DateTime parseYyyyMMddHHmmssSSS(String str) {DateTime d = fmt_yyyyMMddHHmmssSSS.parseDateTime(str);return d;}public static DateTime parseYyyyMMddHHmmss(String str) {DateTime d = fmt_yyyyMMddHHmmss.parseDateTime(str);return d;}public static DateTime parseYyyyMMddHHmm(String str) {DateTime d = fmt_yyyyMMddHHmm.parseDateTime(str);return d;}public static DateTime parseYYYYMMDDHHMM(String str) {DateTime d = fmt_YYYYMMDDHHMM.parseDateTime(str);return d;}public static DateTime parseYyyyMMdd(String str) {DateTime d = fmt_yyyyMMdd.parseDateTime(str);return d;}public static DateTime parseHHmmss(String str) {DateTime d = fmt_HHmmss.parseDateTime(str);return d;}public static DateTime parseHHmm(String str) {DateTime d = fmt_HHmm.parseDateTime(str);return d;}public static DateTime parseYyyyMMddHHmmss_noSplit(String str) {DateTime d = fmt_yyyyMMddHHmmss_noSplit.parseDateTime(str);return d;}public static DateTime parseYyyyMMddHHmm_noSplit(String str) {DateTime d = fmt_yyyyMMddHHmm_noSplit.parseDateTime(str);return d;}public static DateTime parseYyyyMMdd_noSplit(String str) {DateTime d = fmt_yyyyMMdd_noSplit.parseDateTime(str);return d;}public static DateTime parseHHmmss_noSplit(String str) {DateTime d = fmt_HHmmss_noSplit.parseDateTime(str);return d;}public static DateTime parseHHmm_noSplit(String str) {DateTime d = fmt_HHmm_noSplit.parseDateTime(str);return d;}/*** 判断被测试的日期是否在两个给定的日期范围内。** @param testDate  被测试的日期* @param startDate 开始日期* @param endDate   结束日期* @return*/public static boolean isInDateRange(DateTime testDate, DateTime startDate, DateTime endDate) {if (testDate == null) {return false;}if (startDate == null && endDate == null) {return true;}if (startDate != null && endDate == null) {return (testDate.compareTo(startDate) >= 0);}if (startDate == null && endDate != null) {return (testDate.compareTo(endDate) <= 0);}if (startDate != null && endDate != null) {return ((testDate.compareTo(startDate) >= 0) && (testDate.compareTo(endDate) <= 0));}return false;}public static DateTime plusSeconds(Date date, int seconds) {return toDateTime(date).plusSeconds(seconds);}public static DateTime toDateTime(Date date) {if (date == null) {return null;}return new DateTime().withMillis(date.getTime());}public static String format2String(Date date, String pattern) {if (date == null || StringUtils.isEmpty(pattern)) {return null;}DateTime datetime = formatDate2DT(date);return format2String(datetime, pattern);}public static DateTime formatDate2DT(Date date) {if (date == null) {return null;}return DateTime.now().withMillis(date.getTime());}public static String format2String(DateTime time, String pattern) {if (time == null || StringUtils.isEmpty(pattern)) {return null;}return time.toString(pattern);}
}

View Code

转载于:https://www.cnblogs.com/jian-xiao/p/6011958.html

第二章 DateTime工具类相关推荐

  1. wxFormBuilder + wxPython 工具开发第二章-日记本工具数据连接与展示

    目录 前言 一.代码目录层级 二.数据库 三.数据表设计 四.展示数据 前言 上一章节已经介绍了如何将程序主窗口设计好生成python代码,运行成功的展示了窗体. 上一章内容地址: wxFormBui ...

  2. Kotlin学习笔记 第二章 类与对象 第一节类与继承(补)

    参考链接 Kotlin官方文档 Kotlin docs | Kotlin 本系列为参考Kotlin中文文档 kotlin官方文档2020版.pdf-其它文档类资源-CSDN下载 第二章 第一节 类与继 ...

  3. 第二章 java常用开发工具以及程序的编写

    2019独角兽企业重金招聘Python工程师标准>>> 第二章 java常用开发工具以及程序的编写 1. 程序的概念         2. java程序的开发的三个步骤        ...

  4. 微信小程序教学第二章(含视频):小程序中级实战教程之预备篇 - 提取util公用方法 |基于最新版1.0开发者工具

    iKcamp官网:http://www.ikcamp.com 访问官网更快阅读全部免费分享课程:<iKcamp出品|全网最新|微信小程序|基于最新版1.0开发者工具之初中级培训教程分享>. ...

  5. 《数字图像处理》学习总结及感悟:第二章数字图像基础(5)数学工具

    ☞ ░ 前往老猿Python博文目录 https://blog.csdn.net/LaoYuanPython ░ 一.引言 本系列文章记录老猿自学冈萨雷斯<数字图像处理>的感悟和总结,不过 ...

  6. Kotlin学习笔记 第二章 类与对象 第十四 十五节 委托 委托属性

    参考链接 Kotlin官方文档 https://kotlinlang.org/docs/home.html 中文网站 https://www.kotlincn.net/docs/reference/p ...

  7. Kotlin学习笔记 第二章 类与对象 第十二 十三节 对象表达式与对象声明 类型别名

    参考链接 Kotlin官方文档 https://kotlinlang.org/docs/home.html 中文网站 https://www.kotlincn.net/docs/reference/p ...

  8. Kotlin学习笔记 第二章 类与对象 第十节 内部类嵌套类

    参考链接 Kotlin官方文档 https://kotlinlang.org/docs/home.html 中文网站 https://www.kotlincn.net/docs/reference/p ...

  9. Kotlin学习笔记 第二章 类与对象 第十一节 枚举类 第八节密封类

    参考链接 Kotlin官方文档 https://kotlinlang.org/docs/home.html 中文网站 https://www.kotlincn.net/docs/reference/p ...

最新文章

  1. XWiki 4.3 正式版发布
  2. oracle中获取年份、月份段内的时间
  3. 政策表达式截取json_json格式数据如何提取指定中文字符串。
  4. 容易忽视的十大SQL优化方案!
  5. Python+Matplotlib制作动画
  6. C#读写txt文件的两种方法介绍
  7. 一加Nord 2外观渲染图曝光:小号“一加9” 价格有惊喜
  8. C++多继承的二义性
  9. 2019最新论文阅读-BlazeFace:面向移动设备的实时人脸检测
  10. 学习笔记 10.28
  11. java知识点ppt背景图片_Java 给PPT幻灯片添加背景颜色和背景图片
  12. 基于Quartz实现定时任务-框架学习
  13. 给合肥市社保局和社保明细打印系统提一提改进建议
  14. Redis zset的zadd()和zincrby()踩坑记录
  15. 双11销额超二三四五名总和,喜临门为床垫行业树立“高度和广度”
  16. 【原创+转贴】岁月不饶人,爸妈老了
  17. wiki的备份以及迁移方式
  18. 甲骨文考虑收购市值775亿美元的埃森哲
  19. macromedia_Macromedia.com的想法…
  20. 智慧水务平台建设方案

热门文章

  1. 带电插拔损坏设备原理_热水器不用时,要不要拔插座?看完才知道,天天拔比不拔更危险...
  2. python snmp采集交换机信息_Python采集12星座信息,分析出12星座的各个特点
  3. opencv 4快速入门_基于OpenCV的图像融合
  4. js中在表格中增加一列的方法_Excel表格中需要提取一列内容末尾的数字,同事分分钟完成...
  5. where显示null行_Python 之 MySql“未解之谜”14-- 都是 NULL 惹的祸(下)
  6. java array 元素的位置_java中的两种排序工具Arrays和Collections的使用
  7. createelement 设置id_还记得你的第一个网络ID是什么吗?
  8. 服务器虚拟化的毕业设计,基于Vmware的服务器虚拟化管理毕业论文.doc
  9. vb与三菱plc以太网通讯_实战演练|三菱触摸屏GOT2000与三菱Q系列以太网通讯
  10. linux服务器 远程桌面,Linux 远程桌面的两种方式