【Java】commons-lang3中DateUtils类方法介绍
添加commons-lang3的Maven依赖
<dependency>
<groupId>org.apache.commons</groupId>
<artifactId>commons-lang3</artifactId>
<version>3.7</version>
</dependency>
DateUtils类的几个重要方法及注释
SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMdd hh:mm:ss");
Date date = new Date();
/**
* String转换成Date
* arg0 : 日期字符串 String
* arg1 : 特定的地理,政治和文化地区.可以传null
* arg3 : 日期格式.与arg0格式一致 String
* 该方法对日期和时间的解释是宽松的
* 宽松的解释日期(如 1996 年 2 月 42 日)将被视为等同于 1996 年 2 月 1 日后的第 41 天
* 如果是严格的解释,此类日期就会引发异常
*/
Date date1 = DateUtils.parseDate("20171012 14:30:12", Locale.TRADITIONAL_CHINESE, "yyyyMMdd hh:mm:ss");
Date date2 = DateUtils.parseDate("20171012 14:30:12", Locale.TRADITIONAL_CHINESE, "yyyyMMdd hh:mm:ss");
/**
* String转换成Date 严格的
* arg0 : 日期字符串 String
* arg1 : 特定的地理,政治和文化地区.可以传null
* arg3 : 日期格式.与arg0格式一致 String
* 该方法对日期和时间的解释是严格的
*/
Date date3 = DateUtils.parseDateStrictly("20171012", Locale.TRADITIONAL_CHINESE, "yyyyMMdd");
Date date4 = DateUtils.parseDateStrictly("20171012", Locale.TRADITIONAL_CHINESE, "yyyyMMdd");
/**
* 判断两个日期是否是同一天
* arg0 arg1 数据类型 : Date Calendar
* 比较arg0 arg1的
* ERA = 0 年代
* YEAR = 1 年
* DAY_OF_YEAR = 6 年中的第几天
*/
DateUtils.isSameDay(date3, date4);
System.out.println("isSameDay = " + DateUtils.isSameDay(date3, date4));
/**
* 判断两个日期是不是同一毫秒
* arg0 arg1 数据类型 : Date Calendar
* 自1970年1月1日00:00:00 GMT 的毫秒数是否相等
*/
DateUtils.isSameInstant(date1, date2);
System.out.println("isSameInstant = " + DateUtils.isSameInstant(date1, date2));
/**
* 判断是否是同一个本地时间
* arg0 arg1 数据类型 : Calendar
* 比较arg0 arg1的
* 数据类型
* ERA = 0 年代
* YEAR = 1 年
* DAY_OF_YEAR = 6 年中的第几天
* HOUR_OF_DAY = 11 天中的第几个小时
* MINUTE = 12 分钟
* SECOND = 13 秒
* MILLISECOND = 14 毫秒
*/
Calendar cal1 = Calendar.getInstance();
cal1.setTime(date1);
Calendar cal2 = Calendar.getInstance();
cal2.setTime(date2);
DateUtils.isSameLocalTime(cal1, cal2);
System.out.println("isSameLocalTime = " + DateUtils.isSameLocalTime(cal1, cal2));
/**
* 获取指定日期前后arg1年
* arg0 : 指定日期 Date类型
* arg1 : int型,正数向后天数,0当天,负数向前天数
*/
date = DateUtils.addYears(date1, 4);
System.out.println("addYears = " + sdf.format(date));
/**
* 获取指定日期前后arg1月
* arg0 : 指定日期 Date类型
* arg1 : int型,正数向后天数,0当天,负数向前天数
*/
date = DateUtils.addMonths(date1, 4);
System.out.println("addMonths = " + sdf.format(date));
/**
* 获取指定日期前后arg1周
* arg0 : 指定日期 Date类型
* arg1 : int型,正数向后天数,0当天,负数向前天数
*/
date = DateUtils.addWeeks(date1, 4);
System.out.println("addWeeks = " + sdf.format(date));
/**
* 获取指定日期前后arg1天
* arg0 : 指定日期 Date类型
* arg1 : int型,正数向后天数,0当天,负数向前天数
*/
date = DateUtils.addDays(date1, 4);
System.out.println("addDays = " + sdf.format(date));
/**
* 获取指定日期前后arg1小时
* arg0 : 指定日期 Date类型
* arg1 : int型,正数向后天数,0当天,负数向前天数
*/
date = DateUtils.addHours(date1, 4);
System.out.println("addHours = " + sdf.format(date));
/**
* 获取指定日期前后arg1分钟
* arg0 : 指定日期 Date类型
* arg1 : int型,正数向后天数,0当天,负数向前天数
*/
date = DateUtils.addMinutes(date1, 4);
System.out.println("addMinutes = " + sdf.format(date));
/**
* 获取指定日期前后arg1秒
* arg0 : 指定日期 Date类型
* arg1 : int型,正数向后天数,0当天,负数向前天数
*/
date = DateUtils.addSeconds(date1, 4);
System.out.println("addSeconds = " + sdf.format(date));
/**
* 获取指定日期前后arg1毫秒
* arg0 : 指定日期 Date类型
* arg1 : int型,正数向后天数,0当天,负数向前天数
*/
date = DateUtils.addMilliseconds(date1, 4);
System.out.println("addMilliseconds = " + sdf.format(date));
/**
* 指定日期年的值
* arg0 : 日期 Date类型
* arg1 : int型
*/
date = DateUtils.setYears(date1, 2008);
System.out.println("setYears = " + sdf.format(date));
/**
* 指定日期月的值
* arg0 : 日期 Date类型
* arg1 : int型 范围在 1-12
*/
date = DateUtils.setMonths(date1, 1);
System.out.println("setMonths = " + sdf.format(date));
/**
* 指定日期天的值
* arg0 : 日期 Date类型
* arg1 : int型 范围在 1-31(不同月份值略有不同)
*/
date = DateUtils.setDays(date1, 24);
System.out.println("setDays = " + sdf.format(date));
/**
* 指定日期小时的值
* arg0 : 日期 Date类型
* arg1 : int型 范围在1-23
*/
date = DateUtils.setHours(date1, 23);
System.out.println("setHours = " + sdf.format(date));
/**
* 指定日期分钟的值
* arg0 : 日期 Date类型
* arg1 : int型 范围在1-59
*/
date = DateUtils.setMinutes(date1, 56);
System.out.println("setMinutes = " + sdf.format(date));
/**
* 指定日期秒的值
* arg0 : 日期 Date类型
* arg1 : int型 范围在1-59
*/
date = DateUtils.setSeconds(date1, 14);
System.out.println("setMinutes = " + sdf.format(date));
/**
* 指定日期毫秒的值
* arg0 : 日期 Date类型
* arg1 : int型
*/
date = DateUtils.setMilliseconds(date1, 100);
System.out.println("setMinutes = " + sdf.format(date));
/**
* 相当于
* Calendar cal3 = Calendar.getInstance();
* cal3.setTime(date);
* 得到的cal
*/
Calendar cal3 = DateUtils.toCalendar(date1);
/**
* 获取时区
* timeZone 系统默认
* timeZone1 系统默认时区
* timeZone2 设置时区
*/
Calendar calendar = new GregorianCalendar();
TimeZone timeZone = calendar.getTimeZone();
TimeZone timeZone1 = TimeZone.getDefault();
TimeZone timeZone2 = TimeZone.getTimeZone("Europe/Copenhagen");
/**
* Date 转换成 Calendar 带时区
* arg0 : 日期 Date类型
* arg1 : 时区
*/
Calendar cal4 = DateUtils.toCalendar(date1, timeZone2);
long fragment = 0;
/**
* 获取指定日期中从指定位置起的毫秒数
* arg0 : 指定的日期 Date类型 或 Calendar类型
* arg1 : 指定从什么位置开始 int类型:建议使用 Calendar.YEAR Calendar.MONTH 等常量
*/
fragment = DateUtils.getFragmentInMilliseconds(date1, Calendar.MONDAY);
System.out.println("getFragmentInMilliseconds = " + fragment);
/**
* 获取指定日期中从指定位置起的秒数
* arg0 : 指定的日期 Date类型 或 Calendar类型
* arg1 : 指定从什么位置开始 int类型:建议使用 Calendar.YEAR Calendar.MONTH 等常量
*/
fragment = DateUtils.getFragmentInSeconds(date1, Calendar.MONDAY);
System.out.println("getFragmentInSeconds = " + fragment);
/**
* 获取指定日期中从指定位置起的分钟数
* arg0 : 指定的日期 Date类型 或 Calendar类型
* arg1 : 指定从什么位置开始 int类型:建议使用 Calendar.YEAR Calendar.MONTH 等常量
*/
fragment = DateUtils.getFragmentInMinutes(date1, Calendar.MONDAY);
System.out.println("getFragmentInMinutes = " + fragment);
/**
* 获取指定日期中从指定位置起的小时数
* arg0 : 指定的日期 Date类型 或 Calendar类型
* arg1 : 指定从什么位置开始 int类型:建议使用 Calendar.YEAR Calendar.MONTH 等常量
*/
fragment = DateUtils.getFragmentInHours(date1, Calendar.MONDAY);
System.out.println("getFragmentInHours = " + fragment);
/**
* 获取指定日期中从指定位置起的天数
* arg0 : 指定的日期 Date类型 或 Calendar类型
* arg1 : 指定从什么位置开始 int类型:建议使用 Calendar.YEAR Calendar.MONTH 等常量
*/
fragment = DateUtils.getFragmentInDays(date1, Calendar.MONDAY);
System.out.println("getFragmentInDays = " + fragment);
boolean isEquals = false;
/**
* 判断两个时间在指定的位置之上是否相等
* arg0 : 时间1 Date类型 或 Calendar类型
* arg1 : 时间2 Date类型 或 Calendar类型
* arg2 : 指定在位置上开始比较 int类型:建议使用 Calendar.YEAR Calendar.MONTH 等常量
*/
isEquals = DateUtils.truncatedEquals(date1, date2, Calendar.MONDAY);
System.out.println("truncatedEquals = " + isEquals);
int truncatedCompare = -1;
/**
* 比较arg0与arg1两个时间在指定的位置上的时间差值
* arg0 : 时间1 Date类型 或 Calendar类型
* arg1 : 时间2 Date类型 或 Calendar类型
* arg2 : 指定在位置上开始比较 int类型:建议使用 Calendar.YEAR Calendar.MONTH 等常量
*/
truncatedCompare = DateUtils.truncatedCompareTo(date1, date2, Calendar.MONDAY);
System.out.println("truncatedCompareTo = " + truncatedCompare);
原文:https://www.cnblogs.com/aston/p/9053201.html
【Java】commons-lang3中DateUtils类方法介绍的更多相关文章
- commons-lang3中DateUtils类方法介绍
添加commons-lang3的Maven依赖 <dependency> <groupId>org.apache.commons</groupId> <art ...
- 【转】java中Thread类方法介绍
原文: java中Thread类方法介绍 http://blog.csdn.net/seapeak007/article/details/53395609 这篇文章找时间分析一下!!!:http:// ...
- java commons.lang3 ArrayUtils使用
java commons.lang3 ArrayUtils使用import org.apache.commons.lang3.ArrayUtils; /** *数组追加数组,不重复 */ public ...
- Hanlp在java中文分词中的使用介绍
项目结构 该项目中,.jar和data文件夹和.properties需要从官网/github下载,data文件夹下载 项目配置 修改hanlp.properties: 1 #/Test/src/han ...
- Java遍历包中所有类方法注解
import java.io.File; import java.io.FileFilter; import java.io.IOException; import java.lang.annotat ...
- 【java】org.apache.commons.lang3功能示例
org.apache.commons.lang3功能示例 package com.simple.test; import java.util.Date; import java.util.Iterat ...
- 日期工具类 DateUtils(继承org.apache.commons.lang.time.DateUtils类)
/** * */ package com.dsj.gdbd.utils.web; import org.apache.commons.lang3.time.DateFormatUtils; impor ...
- struts2中的错误--java.lang.NoClassDefFoundError: org/apache/commons/lang3/StringUtils
2013-4-7 10:13:56 org.apache.catalina.startup.HostConfig checkResources 信息: Reloading context [/chap ...
- spring异常记录-----java.lang.NoClassDefFoundError: org/apache/commons/lang3/StringUtils
今天在练习怎样SSH中进行单元測试的时候出现下列异常: SEVERE: Exception starting filter Struts2 java.lang.NoClassDefFoundError ...
随机推荐
- 阶段1 语言基础+高级_1-3-Java语言高级_04-集合_04 数据结构_4_数据结构_链表
查询慢,增删快. 绿色代表一条链 红色是另外一条链 .查询是从头开始查所以慢. 在300和55之间添加一个元素
- python实现excel转换成pdf
1.安装 需要安装pywin32包,以实现对Office文件的操作,可以批量转换为pdf文件.支持 doc, docx, ppt, pptx, xls, xlsx 等格式. pip install p ...
- Net的网络层的构建(源码分析)
概述 网络层的构建是在Net<Dtype>::Init()函数中完成的,构建的流程图如下所示: 从图中可以看出网络层的构建分为三个主要部分:解析网络文件.开始建立网络层.网络层需要参与计算 ...
- Android在WindowManagerService和ActivityManagerService中的Token
https://upload-images.jianshu.io/upload_images/5688445-6cf0575bb52ccb45.png 1. ActivityRecord中的token ...
- python 入门学习之anaconda篇
还没下载的同学先点击这里进入anaconda官方网站进行下载. 然后点击安装,注意的是这里 安装好了之后呢,我们就开始进行Conda的环境管理,Conda的环境管理功能允许我们同时安装 若干不同版本的 ...
- 什么是HIS、PACS、LIS、RIS
什么是HIS?医院信息系统的定义(HIS)医院信息系统(Hospital Information System,HIS)在国际学术界已公认为新兴的医学信息学(Medical Informatics)的 ...
- leveldb memtable
memtable常驻于内存,需要按照key进行排序,通常意义上的话,可以使用二叉查找树来实现,跟进一步可以使用红黑树保证树的平衡,但是leveldb中使用了另外的一种数据结构:跳表Skip List. ...
- 自己挖的坑自己填--docker创建实例出现Waiting for SSH to be available…
在之前使用Docker for Windows Installer.exe直接安装,通过docker-machine-driver-vmwareworkstation.exe实现docker和VM的共 ...
- jquery点击来回切换
做个笔记偶尔用有时记不住 方法一: <div id="test"> test </div> $('#test').mouseover(function () ...
- 对PInvoke函数函数调用导致堆栈不对称。原因可能是托管的 PInvoke 签名与非托管的目标签名不匹配。
C#引入外部非托管类库时,有时候会出现“对PInvoke函数调用导致堆栈不对称.原因可能是托管的 PInvoke 签名与非托管的目标签名不匹配”的报错. 通常在DllImport标签内加入属性Call ...