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 函数 | ...
随机推荐
- 解决 docker: Error response from daemon: ... : net/http: TLS handshake timeout.
参考:解决 Docker pull 出现的net/http: TLS handshake timeout 的一个办法 问题: 执行 $ sudo docker run hello-world 时出现: ...
- 过滤器系列(三)—— RSQF
这个过滤器本身是一篇论文中提出的过滤器的简化版本,去掉了计数功能,我觉得简化版本应用的可能也很广,专门写一篇简化版本的RSQF.RSQF全称是rank-and-select based filter, ...
- IOS-网络(AFNetworking)
一.AFNetWorking基本使用 // // ViewController.m // IOS_0112_AFNetWorking // // Created by ma c on 16/2/11. ...
- 用setTimeout实现setInterval函数
最近get一个新知识,也不算是新知识,可能是以前自己没有认真对待(对自己无语ing,si不si傻). 废话不多说,直接来看代码吧 function setInterval(func, t){ var ...
- 多线程--Thread.join方法
在Thread类的Api中,Join的作用是让当前线程等待目标线程结束之后才继续执行. thread.Join把指定的线程加入到当前线程,可以将两个交替执行的线程合并为顺序执行的线程. 比如在线程B ...
- Xcode 7.0 Could not find developer disk image
在使用Xcode 7的真机运行的时候, 出现Could not find developer disk image. 解决方法:先关闭Xcode.再从Xcode 6.4中,拷贝8.4 (12H141) ...
- iOS面试准备之思维导图(转)
以思维导图的方式对iOS常见的面试题知识点进行梳理复习. 目录 1.UI视图相关面试问题 2.Runtime相关面试问题 3.内存管理相关面试问题 4.Block相关面试问题 5.多线程相关面试问题 ...
- 保卫萝卜官方PC版——含绿色版 V1.0.6Beta
官方网站 | 安装版 | 绿色版
- 『转』谷歌发布Windows版Chrome App Launcher
据国外媒体报道,谷歌发布了Windows版Chrome App Launcher,Windows用户现在因此能够使用谷歌的许多网络应用,如Chrome浏览器.Gmail.Google Drive和Ch ...
- 201621123005《Java程序设计》第十次实验总结
201621123005<Java程序设计>第十周学习总结 1. 本周学习总结 1.1 以你喜欢的方式(思维导图或其他)归纳总结异常相关内容. 2. 书面作业 1. 常用异常 1.1 自己 ...