Calendar时间操作
1、Calendar是Java提供的一个util类,在java.util中。我们在开发过程中经常遇到,需要对时间进行处理的方式。而Java中Calendar给我们提供了很好的控制方式。
2、我这里主要是介绍几种Calendar的操作方式来获取不同时间
public class CalendarUtil {
/**
* 获取当月第一天开始时间和最后一天结束时间
* @return
*/
public final static List<Long> getMonthStartAndEnd(){
Calendar calendar = Calendar.getInstance();
calendar.add(Calendar.MONTH,0);
calendar.set(Calendar.DAY_OF_MONTH,1);
calendar.set(Calendar.HOUR_OF_DAY,0);
calendar.set(Calendar.MINUTE,0);
calendar.set(Calendar.SECOND,0);
calendar.set(Calendar.MILLISECOND,0);
Long firstDay = calendar.getTime().getTime();
calendar.add(Calendar.MONTH,1);
Long lastDay = calendar.getTime().getTime()-1;
List<Long> times = new ArrayList<>();
times.add(firstDay);
times.add(lastDay);
return times;
}
/**
* 获取当天的开始时间
* @return
*/
public final static Long getDayStart(){
Calendar calendar = Calendar.getInstance();
calendar.add(Calendar.MONTH,0);
calendar.set(Calendar.HOUR_OF_DAY,0);
calendar.set(Calendar.MINUTE,0);
calendar.set(Calendar.SECOND,0);
calendar.set(Calendar.MILLISECOND,0);
return calendar.getTime().getTime();
}
/**
* 获取某天的开始时间
* @param day
* @return
*/
public final static Long getDayStart(Integer day){
Calendar calendar = Calendar.getInstance();
calendar.add(Calendar.MONTH,0);
calendar.set(Calendar.HOUR_OF_DAY,0);
calendar.set(Calendar.MINUTE,0);
calendar.set(Calendar.SECOND,0);
calendar.set(Calendar.MILLISECOND,0);
calendar.set(Calendar.DAY_OF_MONTH,day.intValue());
return calendar.getTime().getTime();
}
/**
* 获取某天的结束时间
* @param day
* @return
*/
public final static Long getDayEnd(Integer day){
Calendar calendar = Calendar.getInstance();
calendar.add(Calendar.MONTH,0);
calendar.set(Calendar.HOUR_OF_DAY,0);
calendar.set(Calendar.MINUTE,0);
calendar.set(Calendar.SECOND,0);
calendar.set(Calendar.MILLISECOND,0);
calendar.set(Calendar.DAY_OF_MONTH,day.intValue()+1);
return calendar.getTime().getTime()-1;
}
/**
* 获取本月或者次月某天的结束时间
* @param month
* @param day
* @return
*/
public final static Long getDayEnd(Integer month,Integer day){
Calendar calendar = Calendar.getInstance();
calendar.add(Calendar.MONTH,month.intValue());
calendar.set(Calendar.HOUR_OF_DAY,0);
calendar.set(Calendar.MINUTE,0);
calendar.set(Calendar.SECOND,0);
calendar.set(Calendar.MILLISECOND,0);
calendar.set(Calendar.DAY_OF_MONTH,day.intValue()+1);
return calendar.getTime().getTime()-1;
}
/**
* 获取本季度的开始时间和结束时间
* @return
*/
public final static List<Long> getQuarterStartAndEnd(){
//获取时间
Calendar calendar = Calendar.getInstance();
//判读当前时间是哪个季度
int month = calendar.get(Calendar.MONTH)+1;
Integer quarter = 0;
if (month>=1 && month <=3) {
quarter = 1;
} else if (month>=4 && month <=6) {
quarter = 2;
} else if (month>=7 && month <=9) {
quarter = 3;
} else if (month>=10 && month <=12) {
quarter = 4;
}
calendar.set(Calendar.MONTH,3*(quarter.intValue()-1));
calendar.set(Calendar.DAY_OF_MONTH,1);
calendar.set(Calendar.HOUR_OF_DAY,0);
calendar.set(Calendar.MINUTE,0);
calendar.set(Calendar.SECOND,0);
calendar.set(Calendar.MILLISECOND,0);
Long firstDay = calendar.getTime().getTime();
calendar.add(Calendar.MONTH,3);
Long lastDay = calendar.getTime().getTime()-1;
List<Long> times = new ArrayList<>();
times.add(firstDay);
times.add(lastDay);
return times;
}
/**
* 获取每个季度第某个月,第某个天数的开始时间
* @return
*/
public final static List<Long> getQuarterStart(Integer month,Integer day){
List<Long> times = new ArrayList<>();
for (int i = 1; i <= 4; i++) {
//获取时间
Calendar calendar = Calendar.getInstance();
calendar.set(Calendar.MONTH,3*(i-1)-1+month.intValue());
calendar.set(Calendar.DAY_OF_MONTH,day);
calendar.set(Calendar.HOUR_OF_DAY,0);
calendar.set(Calendar.MINUTE,0);
calendar.set(Calendar.SECOND,0);
calendar.set(Calendar.MILLISECOND,0);
times.add(calendar.getTime().getTime());
}
return times;
}
/**
* 获取某个季度某个月,某天的结束时间
* @return
*/
public final static Long getQuarterEnd(Integer month,Integer day){
//获取时间
Calendar calendar = Calendar.getInstance();
//判读当前时间是哪个季度
int currentMonth = calendar.get(Calendar.MONTH)+1;
Integer quarter = 0;
if (currentMonth>=1 && currentMonth <=3) {
quarter = 1;
} else if (currentMonth>=4 && currentMonth <=6) {
quarter = 2;
} else if (currentMonth>=7 && currentMonth <=9) {
quarter = 3;
} else if (currentMonth>=10 && currentMonth <=12) {
quarter = 4;
}
calendar.set(Calendar.MONTH,3*(quarter.intValue()-1)+month.intValue());
calendar.set(Calendar.DAY_OF_MONTH,day+1);
calendar.set(Calendar.HOUR_OF_DAY,0);
calendar.set(Calendar.MINUTE,0);
calendar.set(Calendar.SECOND,0);
calendar.set(Calendar.MILLISECOND,0);
return calendar.getTime().getTime()-1;
}
/**
* 获取当年的开始时间和结束时间
* @return
*/
public final static List<Long> getYearStartAndEnd(){
Calendar calendar = Calendar.getInstance();
calendar.set(Calendar.MONTH,0);
calendar.set(Calendar.DAY_OF_MONTH,1);
calendar.set(Calendar.HOUR_OF_DAY,0);
calendar.set(Calendar.MINUTE,0);
calendar.set(Calendar.SECOND,0);
calendar.set(Calendar.MILLISECOND,0);
Long firstDay = calendar.getTime().getTime();
calendar.add(Calendar.MONTH,12);
Long lastDay = calendar.getTime().getTime()-1;
List<Long> times = new ArrayList<>();
times.add(firstDay);
times.add(lastDay);
return times;
}
/**
* 获取当前年第某个月,第某个天数的开始时间
* @return
*/
public final static Long getYearStart(Integer month,Integer day){
//获取时间
Calendar calendar = Calendar.getInstance();
calendar.set(Calendar.MONTH,month.intValue()-1);
calendar.set(Calendar.DAY_OF_MONTH,day.intValue());
calendar.set(Calendar.HOUR_OF_DAY,0);
calendar.set(Calendar.MINUTE,0);
calendar.set(Calendar.SECOND,0);
calendar.set(Calendar.MILLISECOND,0);
return calendar.getTime().getTime();
}
/**
* 获取当前年第某个月,第某个天数的结束时间
* @return
*/
public final static Long getYearEnd(Integer month,Integer day){
//获取时间
Calendar calendar = Calendar.getInstance();
calendar.set(Calendar.MONTH,month.intValue()-1);
calendar.set(Calendar.DAY_OF_MONTH,day.intValue()+1);
calendar.set(Calendar.HOUR_OF_DAY,0);
calendar.set(Calendar.MINUTE,0);
calendar.set(Calendar.SECOND,0);
calendar.set(Calendar.MILLISECOND,0);
return calendar.getTime().getTime()-1;
}
}
Calendar时间操作的更多相关文章
- Date和Calendar时间操作常用方法及示例
package test; import java.text.SimpleDateFormat;import java.util.Calendar;import java.util.Date; /** ...
- Java Calendar 类的时间操作
Java Calendar 类的时间操作 标签: javaCalendar时间Date 2013-07-30 17:53 140401人阅读 评论(7) 收藏 举报 分类: 所有(165) Java ...
- JAVA中的时间操作
java中的时间操作不外乎这四种情况: 1.获取当前时间 2.获取某个时间的某种格式 3.设置时间 4.时间的运算 好,下面就针对这四种情况,一个一个搞定. 一.获取当前时间 有两种方式可以获得,第一 ...
- java时间操作
这篇讲的也很专业:http://soft.zdnet.com.cn/software_zone/2007/1129/660028.shtml java中的时间操作不外乎这四种情况: 1.获取当前时间 ...
- java中常用的时间操作
最近项目设计时间的转换和计算,长时间没用时间操作了,感觉手有点生,所以在这里记录一下: Date 常用的方法: getTime() .setTime(): SimpleDateFormate 常用的方 ...
- poco时间操作
Poco::DateTime Poco::Timespan Poco::Timestamp 时间操作 Poco::DateTime dt; //c++ 20才有 Calendar dt = dt + ...
- Python基础 | 日期时间操作
目录 获取时间 时间映射 格式转换 字符串转日期 日期转字符串 unixtime 时间计算 时间偏移 时间差 "日期时间数据"作为三大基础数据类型之一,在数据分析中会经常遇到. 本 ...
- Java日期时间操作基础——包含JDK1.8时间操作新特性
JDK1.7日期时间操作 示例小结 public class DateTest { public static final String FORMAT_DATE = "yyyy-MM-dd& ...
- paip.日期时间操作以及时间戳uapi php java python 总结
paip.日期时间操作以及时间戳uapi php java python 总结 ///uapi Date 函数 | Day 函数 | Hour 函数 | Minute 函数 | Month 函数 | ...
随机推荐
- POJ Stockbroker Grapevine(floyd)
https://vjudge.net/problem/POJ-1125 题意: 题意不是很好理解,首先输入一个n,表示有n个股票经纪人,接下来输入n行,每行第一个数m为该股票经纪人认识的经纪人数,然后 ...
- Redis之hash数据结构实现
参考 https://www.cnblogs.com/ourroad/p/4891648.html https://blog.csdn.net/hjkl950217/article/details/7 ...
- c++ 反转容器的元素顺序(reverse)
#include <vector> #include <iostream> #include <iterator> #include <algorithm&g ...
- 解决本地项目推送到码云(github),上提示:failed to push some refs to ...
本地项目上传github 命令如下: 1.git init 2.git add . 3.git commit -m "init" 4.git remote add origin ...
- 豆知识扩展:HTML<meta> tag
豆知识: HTML<meta> tag Metadata 是关于数据的信息. The <meta> tag provides metadata关于网页.Metadat不会显示在 ...
- 记一次生产环境axis2服务特别慢的问题。
情况如下: 某服务,在测试环境测试的时候整个响应过程也就0.5s左右,测试环境和生产环境axis2版本一致,tomcat版本一致,但是生产环境需要差不多20S. 后来,越来越慢,导致服务一起来,整个生 ...
- BZOJ2314 士兵的放置
树形DP,恩然后就不会了... 先写了个错的离谱程序...果然WA了 然后开始乱搞,欸,对了! 令f[i], g[i], h[i]分别表示i号节点自己放士兵,被儿子上的士兵控制,不被儿子上的士兵控制但 ...
- MsWord 操作总结
转自(http://www.cnblogs.com/eye-like/p/4121219.html) Msdn上的word操作api(不过只有英文版,英文差的先闪过) Word2007的API:htt ...
- mongdb分布式
搭建高可用mongodb集群(一)——配置mongodb Posted on 17 十一月, 2013 by lanceyan | 21 Replies 在大数据的时代,传统的关系型数据库要能更高的服 ...
- 1月中旬值得一读的10本技术新书(机器学习、Java、大数据等)!
1月中旬,阿里云云栖社区 联合 博文视点 为大家带来十本技术书籍(机器学习.Java.大数据等).以下为书籍详情,文末还有福利哦! 书籍名称:Oracle数据库问题解决方案和故障排除手册 内容简介 & ...