在Apache Commons项目的Lang里面,有两个类:DateUtils和DateFormatUtils,专门用于处理时间日期转换。它们在

org.apache.commons.lang.time包下。

1. 与SUN的SimpleDateFormat相比,其主要优点是:线程安全。

2. 对应于SimpleDateFormat的format()的方法,是DateFormatUtils 的format系列方法,常用的就是:

public static Java.lang.String format (java.util.Date date, java.lang.String pattern)

3. 对应与SimpleDateFormat的parse()的方法,是DateUtils的parseDate方法,即:

public static java.util.Date parseDate (java.lang.String str, java.lang.String[] parsePatterns) throws java.text.ParseException

该方法会将日期字符串按照第二参数中的String数组,依次比对,选择合适的Pattern来解析。

4. 日期舍入与截整,DateUtils的truncate()方法可以将日期按照任意范围截整,关键看第二个参数。

public static java.util.Date truncate (java.util.Date date, int field)

第二个参数取自Calendar的常量,可以是MONTH、DATE、HOUR等多种;

5. 判断是否是同一天,DateUtils的isSameDay()方法

public static boolean isSameDay (java.util.Date date1, java.util.Date date2)

6. DateFormatUtils定义了很多内置的固定日期格式,均为FastDateFormat类型,比如 ISO_DATE_FORMAT。使用 FastDateFormat的format()方法可以直接将日期格式化为内置的固定格式。

public java.lang.String format (java.util.Date date)

常用日期格式的格式化操作:
例1: 以 yyyy-MM-dd 格式化:

DateFormatUtils.ISO_DATE_FORMAT.format(new Date()): 2009-03-20

例2: 以 yyyy-MM-ddZZ 格式化:

DateFormatUtils.ISO_DATE_TIME_ZONE_FORMAT.format(new Date()): 2009-03-20+08:00

例3: 以 yyyy-MM-dd'T'HH:mm:ss 格式化:

DateFormatUtils.ISO_DATETIME_FORMAT.format(new Date()): 2009-03-20T22:07:01

例4: 以 yyyy-MM-dd'T'HH:mm:ssZZ 格式化:

DateFormatUtils.ISO_DATETIME_TIME_ZONE_FORMAT.format(new Date()): 2009-03-20T22:07:01+08:00

例5: 以 'T'HH:mm:ss 格式化:

DateFormatUtils.ISO_TIME_FORMAT.format(new Date()): T22:07:01

例6: 以 HH:mm:ss 格式化:

DateFormatUtils.ISO_TIME_NO_T_FORMAT.format(new Date()): 22:07:01

例7: 以 HH:mm:ssZZ 格式化:

DateFormatUtils.ISO_TIME_NO_T_TIME_ZONE_FORMAT.format(new Date()): 22:07:01+08:00

例8: 以 'T'HH:mm:ssZZ 格式化:

DateFormatUtils.ISO_TIME_TIME_ZONE_FORMAT.format(new Date()): T22:07:01+08:00

自定义日期格式的格式化操作:
例1: 以 yyyy-MM-dd HH:mm:ss 格式化Date对象:

DateFormatUtils.format(new Date(), "yyyy-MM-dd HH:mm:ss"): 2009-03-20 22:24:30

例2: 以 yyyy-MM-dd HH:mm:ss 格式化Calendar对象:

DateFormatUtils.format(Calendar.getInstance(), "yyyy-MM-dd HH:mm:ss"): 2009-03-20 22:24:30

例3: 以 yyyy-MM-dd HH:mm:ss 格式化TimeInMillis:

DateFormatUtils.format(Calendar.getInstance().getTimeInMillis(), "yyyy-MM-dd HH:mm:ss"): 2009-03-20 22:24:30

【转】apache DateFormatUtils 与 DateUtils 的使用的更多相关文章

  1. 【java】org.apache.commons.lang3功能示例

    org.apache.commons.lang3功能示例 package com.simple.test; import java.util.Date; import java.util.Iterat ...

  2. 项目编码规范(Ali)

    一.研发流程规范 二.SQL编码规范 数据库命名规范:数据库名一律小写,必须以字母开头.库名包含多个单词的,以下划线“_”分隔.如果采用分库方案,分库编号从“0”开始,用“0”左补齐为四位. 表名规范 ...

  3. 基于ejbca构建独立ca系统

    ejbca,是一个CA(Certificate Authority)系统软件,CA是数字证书认证中心的简称,主要功能是管理数字证书,包括证书的颁发.销毁.更新等,ejbca实现了CA规范,因此可以用来 ...

  4. 基于开源CA系统ejbca community 6.3.1.1构建私有CA管理数字证书

    最后更新于2017年01月24日 一.为什么 为什么写这篇文章?ca是什么?数字证书是什么?ejbca又是什么? 让我们从http与https说起.http是超文本传输协议(HyperText Tra ...

  5. 阿里巴巴Java开发规范手册

      Java开发手册 版本号 制定团队 更新日期 备  注 1.0.0 阿里巴巴集团技术部 2016.12.7 首次向Java业界公开 一.编程规约 (一) 命名规约 1.   [强制]所有编程相关命 ...

  6. 阿里巴巴 JAVA 开发手册

    阿里巴巴 JAVA 开发手册 1.0.0 阿里巴巴集团技术部 2016.12.7 首次向 Java 业界公开 一. 编程规约(一) 命名规约1. [强制]所有编程相关命名均不能以下划线或美元符号开始, ...

  7. redis队列及多线程应用

    由于xxx平台上自己的博客已经很久没更新了,一直以来都是用的印象笔记来做工作中知识的积累存根,不知不觉印象笔记里已经有了四.五百遍文章.为了从新开始能与广大攻城狮共同提高技术能力与水平,随决心另起炉灶 ...

  8. Java 进行时间处理

    Java 进行时间处理 一.Calendar (1).Calender介绍 Calendar的中文翻译是日历,实际上,在历史上有着许多种计时的方法.所以为了计时的统一,必需指定一个日历的选择.那现在最 ...

  9. 使用DateUtils和DateFormatUtils处理时间日期转换与SimpleDateFormat的区别

    在Apache Commons项目的Lang里面,有两个类:DateUtils和DateFormatUtils,专门用于处理时间日期转换.它们在 org.apache.commons.lang.tim ...

随机推荐

  1. 通过全局getApp获取全局实例获取数据

    学习是每一个人都要面对的铁一般的事实,不进则退.学习同样讲究途径和方法,面对知识这个巨人,我们永远不会有成年的那一刻,但我们可以让自己毕生尽可能地吸取更多有价值的信息,好让自己人生充满各种“意义”存在 ...

  2. 数论 UVALive 2911

    这道题是一道数论题. 题目的意思是告诉m.p.a.b,并且告诉你xi满足的两个条件.让你求出 xp1 + xp2 +...+ xpm 的最大值(其中p<=12,切p是偶数). 这里需要对于xi所 ...

  3. null和undefined区别(转)

    目前,null和undefined基本是同义的,只有一些细微的差别. null表示"没有对象",即该处不应该有值.典型用法是: (1) 作为函数的参数,表示该函数的参数不是对象. ...

  4. Xcode 6制作动态及静态Framework

    技术交流新QQ群:414971585 有没有写SDK或者要将一些常用的工具类做成Framework的经历? 你或许自己写脚本完成了这项工作,相信也有很多的人使用 iOS-Universal-Frame ...

  5. Oracle启动脚本,开机自启动设置

    #!/bin/sh # chkconfig: # description: Oracle auto start-stop script. # # Set ORA_HOME to be equivale ...

  6. lua Getter&Setter简单实现

    lua是一门简单的语言,不带类和属性封装,但可以使用lua强大的元表模拟实现: class.lua local type = type local rawset = rawset local setm ...

  7. Asp.net MVC 的八个扩展点

    http://www.cnblogs.com/richieyang/p/5180939.html MVC模型以低耦合.可重用.可维护性高等众多优点已逐渐代替了WebForm模型.能够灵活使用MVC提供 ...

  8. 在实现和使用上与select和poll有很大差异

    在看此课程的读者,希望先阅读关于函数基础内容 函数定义与函数作用域 的章节,因为此课程或多或少会涉及函数基础的内容,而基础内容,本人放在 函数定义函数作用域 章节. 本文直接赘述函数参数与闭包,若涉及 ...

  9. FCN网络的训练——以SIFT-Flow 数据集为例

    参考文章: http://blog.csdn.net/u013059662/article/details/52770198 caffe的安装配置,以及fcn的使用在我前边的文章当中都已经提及到了,这 ...

  10. 扩展JQuery和JS的方法

    //JS的扩展方法: 1 定义类静态方法扩展 2 定义类对象方法扩展            var aClass = function(){} //1 定义这个类的静态方法            aC ...