package com.xc.test.dateoperation;

import org.apache.commons.lang3.time.DateFormatUtils;
import org.apache.commons.lang3.time.DateUtils; import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Date;
import java.util.Iterator; public class DateMain { public static void main(String[] args) throws ParseException { Date now = new Date();
// System.out.println("now:" + now);// Fri Aug 16 14:51:39 CST 2019 //日期add
{
// 封装Calendar类add方法
{
Date date = add(now, Calendar.DAY_OF_MONTH, 1);//增加天数
// System.out.println("date:" + date);// Sat Aug 17 14:51:39 CST 2019
Date date2 = add(now, Calendar.MINUTE, 1);//增加分钟
// System.out.println("date2:" + date2);// Fri Aug 16 14:52:39 CST 2019
}
// 通过DateUtils工具类
{
Date date = DateUtils.addDays(now, 1);//增加天数
// System.out.println("date:" + date);// Sat Aug 17 14:51:39 CST 2019
Date date2 = DateUtils.addMinutes(now, 1);//增加分钟
// System.out.println("date2:" + date2);// Fri Aug 16 14:52:39 CST 2019
}
} //判断2个日期是不是同一天
{
// 判断Calendar的年,年所在的天数是否相等
boolean sameDay = isSameDay(now, now);
// System.out.println(sameDay);//true
// 通过DateUtils工具类
boolean sameDay2 = DateUtils.isSameDay(now, now);
// System.out.println(sameDay2);//true
} /*
获取一段日期
RANGE_WEEK_SUNDAY 从周日开始获取一周日期
RANGE_WEEK_MONDAY 从周一开始获取一周日期
RANGE_WEEK_RELATIVE 从当前时间开始获取一周日期
RANGE_WEEK_CENTER 以当前日期为中心获取一周日期
RANGE_MONTH_SUNDAY 从周日开始获取一个月日期
RANGE_MONTH_MONDAY 从周一开始获取一个月日期
*/
Iterator<Calendar> iterator = DateUtils.iterator(now, DateUtils.RANGE_MONTH_SUNDAY);
while (iterator.hasNext()) {
Calendar next = iterator.next();
// System.out.println("next:" + next);
String format = DateFormatUtils.format(next, "yyyy-MM-dd HH:mm:ss");
// System.out.println("format:" + format);
} // 解析时间字符串
{
// 使用SimpleDateFormat类
{
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
Date date = sdf.parse("2019-08-16 15:36:16");
// System.out.println("date:" + date);//Fri Aug 16 15:36:16 CST 2019
}
// 通过DateUtils工具类
{
Date date = DateUtils.parseDate("2019-08-16 15:36:16", "yyyy-MM-dd HH:mm:ss");
// System.out.println("date:" + date);//Fri Aug 16 15:36:16 CST 2019
}
} // 设置日期时间
{
// 封装Calendar的set方法
{
Date date = set(now, Calendar.DAY_OF_MONTH, 1);
// System.out.println(date);//Thu Aug 01 16:04:08 CST 2019
String format = DateFormatUtils.format(date, "yyyy-MM-dd HH:mm:ss");
// System.out.println("format:" + format);//2019-08-01 16:04:08
}
// 通过DateUtils工具类
{
Date date = DateUtils.setDays(now, 1);
// System.out.println(date);//Thu Aug 01 16:04:08 CST 2019
String format = DateFormatUtils.format(date, "yyyy-MM-dd HH:mm:ss");
// System.out.println("format:" + format);//2019-08-01 16:04:08
}
} //计算两个时间隔多少天
{
int intervalDate = intervalDate(now, now);
// System.out.println("intervalDate:" + intervalDate);//
} } // 计算两个时间隔多少天
public static int intervalDate(Date startDate, Date endDate) {
long startTime2 = startDate.getTime();
long endTime2 = endDate.getTime();
int amount = (int) ((endTime2 - startTime2) / (1000 * 3600 * 24));
return amount;
} /**
* 设置日期时间
*
* @param date 待修改的日期
* @param calendarField 设置的单位
* @param amount 设置的数值
* @return Date 设置后的日期
*/
private static Date set(Date date, int calendarField, int amount) {
Calendar c = Calendar.getInstance();
c.setLenient(false);
c.setTime(date);
c.set(calendarField, amount);
return c.getTime();
} /**
* 判断2个日期是不是同一天
*
* @param date1 待比较日期1
* @param date2 待比较日期2
* @return boolean
*/
public static boolean isSameDay(Date date1, Date date2) {
Calendar cal1 = Calendar.getInstance();
cal1.setTime(date1);
Calendar cal2 = Calendar.getInstance();
cal2.setTime(date2);
return cal1.get(Calendar.YEAR) == cal2.get(Calendar.YEAR) &&
cal1.get(Calendar.DAY_OF_YEAR) == cal2.get(Calendar.DAY_OF_YEAR);
} /**
* 日期add
*
* @param date 待增日期
* @param calendarField 增加单位
* @param amount 增加数量
* @return Date 增加后日期
*/
private static Date add(final Date date, int calendarField, int amount) {
Calendar c = Calendar.getInstance();
c.setTime(date);
c.add(calendarField, amount);
return c.getTime();
} }

java 时间的原生操作和工具类操作的更多相关文章

  1. Redis操作List工具类封装,Java Redis List命令封装

    Redis操作List工具类封装,Java Redis List命令封装 >>>>>>>>>>>>>>>> ...

  2. Java操作Redis工具类

    依赖 jar 包 <dependency> <groupId>redis.clients</groupId> <artifactId>jedis< ...

  3. Redis操作Set工具类封装,Java Redis Set命令封装

    Redis操作Set工具类封装,Java Redis Set命令封装 >>>>>>>>>>>>>>>>& ...

  4. java中文件操作的工具类

    代码: package com.lky.pojo; import java.io.BufferedReader; import java.io.BufferedWriter; import java. ...

  5. Java操作FTP工具类(实例详解)

    这里使用Apache的FTP jar 包 没有使用Java自带的FTPjar包  工具类 package com.zit.ftp; import java.io.File; import java.i ...

  6. 黑马程序员——【Java基础】——泛型、Utilities工具类、其他对象API

    ---------- android培训.java培训.期待与您交流! ---------- 一.泛型 (一)泛型概述 1.泛型:JDK1.5版本以后出现的新特性,用于解决安全问题,是一个类型安全机制 ...

  7. 自己封装的poi操作Excel工具类

    自己封装的poi操作Excel工具类 在上一篇文章<使用poi读写Excel>中分享了一下poi操作Excel的简单示例,这次要分享一下我封装的一个Excel操作的工具类. 该工具类主要完 ...

  8. Redis操作字符串工具类封装,Redis工具类封装

    Redis操作字符串工具类封装,Redis工具类封装 >>>>>>>>>>>>>>>>>>& ...

  9. android操作ini工具类

    package com.smarteye.common; import java.io.BufferedReader; import java.io.BufferedWriter; import ja ...

随机推荐

  1. Java静态代理与动态代理 理解与应用场景

    角色 抽象角色:接口类 实现角色: 实现类 代理角色:代理实现的类,最终使用的对象 静态代理 1. 接口 /** * description * * @author 70KG * @date 2018 ...

  2. 什么是好的产品——Diet Rams的十大设计原则

    博朗(BRAUN)的首席设计师Diet Rams的十大设计原则 第一条,好的产品是有创意的,它必须是一个创新的东西: 第二条,好的产品是有用的,一定要对人有用: 第三条,好的产品是优美的,它必须有美感 ...

  3. Attention Model详解

    要是关注深度学习在自然语言处理方面的研究进展,我相信你一定听说过Attention Model(后文有时会简称AM模型)这个词.AM模型应该说是过去一年来NLP领域中的重要进展之一,在很多场景被证明有 ...

  4. Tomcat 部署多个web项目

    1.若Tomcat的端口设置为10000,则http://localhost:10000访问的目录是 webapps 2.Service.xml中host内配置Context标签,path+docba ...

  5. 洛谷 P2627 修剪草坪 题解

    P2627 修剪草坪 题目描述 在一年前赢得了小镇的最佳草坪比赛后,Farm John变得很懒,再也没有修剪过草坪.现在,新一轮的最佳草坪比赛又开始了,Farm John希望能够再次夺冠. 然而,Fa ...

  6. 2019.11.11 模拟赛 T2 乘积求和

    昨天 ych 的膜你赛,这道题我 O ( n4 ) 暴力拿了 60 pts. 这道题的做法还挺妙的,我搞了将近一天呢qwq 题解 60 pts 根据题目给出的式子,四层 for 循环暴力枚举统计答案即 ...

  7. ShellExecute打开文件,打开文件夹的用法

    转自https://www.cnblogs.com/nxopen2018/p/11070031.html //方法1 //转换 //char msg[256]; //sprintf_s(msg, &q ...

  8. python中的zip函数的使用

    >>> x = [, , ] >>> y = [, , ] >>> z = [, , ] >>> xyz = list(zip( ...

  9. java使用freemark生成word/pdf

    目录 一. 背景 二.实现的技术选型以及遇到的坑 三.最终的效果 2.1 .doc word效果展示 2.1 .docx word效果展示 2.2 docx word转pdf效果展示 三.准备工作及代 ...

  10. 第07组 团队Git现场编程实战

    组员职责分工 团队成员 分工 杨明哲 爬数据,做网页 林兴源 合作编码完成了对美团数据的分析,分析出最有发展潜力的十佳好店 卞永亨 从大众点评分析出了服装商圈 林鑫 合作编码完成了对美团数据的分析,分 ...