java 时间的原生操作和工具类操作
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 时间的原生操作和工具类操作的更多相关文章
- Redis操作List工具类封装,Java Redis List命令封装
Redis操作List工具类封装,Java Redis List命令封装 >>>>>>>>>>>>>>>> ...
- Java操作Redis工具类
依赖 jar 包 <dependency> <groupId>redis.clients</groupId> <artifactId>jedis< ...
- Redis操作Set工具类封装,Java Redis Set命令封装
Redis操作Set工具类封装,Java Redis Set命令封装 >>>>>>>>>>>>>>>>& ...
- java中文件操作的工具类
代码: package com.lky.pojo; import java.io.BufferedReader; import java.io.BufferedWriter; import java. ...
- Java操作FTP工具类(实例详解)
这里使用Apache的FTP jar 包 没有使用Java自带的FTPjar包 工具类 package com.zit.ftp; import java.io.File; import java.i ...
- 黑马程序员——【Java基础】——泛型、Utilities工具类、其他对象API
---------- android培训.java培训.期待与您交流! ---------- 一.泛型 (一)泛型概述 1.泛型:JDK1.5版本以后出现的新特性,用于解决安全问题,是一个类型安全机制 ...
- 自己封装的poi操作Excel工具类
自己封装的poi操作Excel工具类 在上一篇文章<使用poi读写Excel>中分享了一下poi操作Excel的简单示例,这次要分享一下我封装的一个Excel操作的工具类. 该工具类主要完 ...
- Redis操作字符串工具类封装,Redis工具类封装
Redis操作字符串工具类封装,Redis工具类封装 >>>>>>>>>>>>>>>>>>& ...
- android操作ini工具类
package com.smarteye.common; import java.io.BufferedReader; import java.io.BufferedWriter; import ja ...
随机推荐
- Linux中修改环境变量
<1>Linux 的变量作用范围可分为两类:环境变量和本地变量 环境变量,或者称为全局变量,存在与所有的shell 中,在你登陆系统的时候就已经有了相应的系统定义的环境变量了.Linux ...
- Eclipse的tab键为4个空格完整方法 附:阿里代码开发规范书
开发规范书:http://pan.baidu.com/s/1dESdyox 1.点击 window->preference-,依次选择 General->Editors->Text ...
- CloudCompare 的简单的使用说明
来自:https://blog.csdn.net/datase/article/details/79797795 File open:打开 save:保存 Global Shift settings: ...
- 将dedecms织梦后台编辑器ckeditor更换为kindeditor,并高亮显示代码
1.下载kindeditor,并解压到kindeditor目录,把kindeditor目录复制到dede的include目录下(ps:修改kindeditor-all-min.js.lang文件夹下z ...
- 安装node.js 和 npm 的完整步骤
vue 生命周期 1,beforeCreate 组件刚刚被创建 2,created 组件创建完成 3,beforeMount 挂载之前 4,mounted 挂载之后 5,beforeDestory 组 ...
- PHP安装mysql.so扩展及相关PHP.ini 配置参数说明
在PHP中mysql_connect模块已经逐渐被弃用,我在搭建环境时也没有再安装mysql扩展,但是今天在维护一个老项目时,出现报错 Fatal error: Uncaught Error: Cal ...
- AtCoder Grand Contest 007题解
传送门 \(A\) 咕咕咕 //quming #include<bits/stdc++.h> #define R register #define fp(i,a,b) for(R int ...
- (6)Go函数和函数式编程
一.Go函数 函数是组织好的.可重复使用的.用于执行指定任务的代码块.本文介绍了Go语言中函数的相关内容. Go语言中支持函数.匿名函数和闭包,并且函数在Go语言中属于"一等公民" ...
- CSP-S2019 快乐爆0
hhh 我爆0了 快乐 大家都比我强 hh 常规操作 本来就是个憨憨 回去复习文化课了 唉 干啥啥不行
- CF1215题解
E 假设从小到大排序,每次交换相邻两个,最小次数即冒泡排序也就是逆序对 考虑值域较小,把每个值映射到\([1,20]\) 设\(f_i\)为已经加入集合为\(i\)的值的最小逆序对个数,考虑填表法 即 ...