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 ...
随机推荐
- TortoiseGit-下载安装汉语语言包(汉化-方法)
TortoiseGit是一款版本控制软件,和git bash是差不多的, 但是TortoiseGit是图形界面,git bash却是命令界面,但是, 我更新了TortoiseGit后,记得明明选择了汉 ...
- [RxJS] Subject asObservable() method
You can create your own state store, not using any state management libraray. You might have seen th ...
- 使用自签CA,Server,client证书和双向认证
服务端代码 package main import ( "crypto/tls" "crypto/x509" "google.golang.org/g ...
- mongodb 副本集的主的选举
primary的选举依赖于各个实例的优先权重,默认权重都是1 复本集的主挑选权重最高的,权重一样的无法控制谁为主 设置各个实例的优先权重,挑选自己想要的实例为主,只有primary可以更改权重配置 c ...
- am335x system upgrade rootfs for bridge-utils cross compile (十四)
bridge-utils移植 [目的] 移植bridge-utils的目是在AM335X开发板上使用bridge功能. [环境] 1. Ubuntu 16.04发行版 2. MC183平台 3. ...
- UVA 11468 Substring (记忆化搜索 + AC自动鸡)
传送门 题意: 给你K个模式串, 然后,再给你 n 个字符, 和它们出现的概率 p[ i ], 模式串肯定由给定的字符组成. 且所有字符,要么是数字,要么是大小写字母. 问你生成一个长度为L的串,不包 ...
- 洛谷P1650赛马与codevs 2181 田忌赛马
洛谷P1650 赛马 题目描述 我国历史上有个著名的故事: 那是在2300年以前.齐国的大将军田忌喜欢赛马.他经常和齐王赛马.他和齐王都有三匹马:常规马,上级马,超级马.一共赛三局,每局的胜者可以从负 ...
- “猜你喜欢”的背后揭秘--10分钟教你用Python打造推荐系统
欲直接下载代码文件,关注我们的公众号哦!查看历史消息即可! 话说,最近的瓜实在有点多,从我科校友李雨桐怒锤某男.陈羽凡吸毒被捕.蒋劲夫家暴的三连瓜,到不知知网翟博士,再到邓紫棋解约蜂鸟.王思聪花千芳隔 ...
- 我们使用 Kafka 生产者在发消息的时候我们关注什么(Python 客户端 1.01 broker)
之前使用 Kafka 的客户端消费者比较多一点,而且也是无脑订阅使用也没有深入了解过具体的参数.总的来说使用不够细节. 这次公司项目活动期间暴露非常多的问题,于是有了这篇文章. 首先我们来拆解一下 K ...
- ssm + ehcache 运行异常
异常: DEBUG [net.sf.ehcache.CacheManager@295af581] - Checking for update...DEBUG [net.sf.ehcache.Cache ...