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 函数 | ...
随机推荐
- 插入10W数据的两个程序比较
程序1 添加10W数据 $count = 0; for ($i = 1;$i <= 100000 ;$i++) { $add_data = [ 'id' => $i, 'username' ...
- apache配置文件详解与优化
apache配置文件详解与优化 一.总结 一句话总结:结合apache配置文件中的英文说明和配置详解一起看 1.apache模块配置用的什么标签? IfModule 例如: <IfModule ...
- CSS 列表样式详解
CSS列表用于前端的列表排列. CSS列表属性作用如下: 设置不同的列表项标记为有序列表 设置不同的列表项标记为无序列表 设置列表项标记为图像 列表 在HTML中,有两种类型的列表: 无序列表 - 列 ...
- python批量给云主机配置安全组
python批量给云主机配置安全组 用公有云的思路去思考去实现一个安全稳定.可伸缩和经济的业务构架,云运维是有别与传统运维的,比如说了解公有云的都知道安全组的概念,安全组跟防火墙功能很相似,那我的机器 ...
- bzoj1225
题解: 数论+报搜 首先套一个计算因子个数的公式 枚举一下这个数 代码: #include<bits/stdc++.h> using namespace std; ],res[],tmp[ ...
- iOS多线程GCD详解
在这之前,一直有个疑问就是:gcd的系统管理多线程的概念,如果你看到gcd管理多线程你肯定也有这样的疑问,就是:并发队列怎么回事,即是队列(先进先出)怎么会并发,本人郁闷了好久,才发现其实cgd管理多 ...
- C#如何弹出输入框
在C#中,进行windows窗体应用程序编程的时候,经常需要弹出输入框,输入密码,输入文本之类的.然而,C#中没有直接弹出输入框的语句,MessageBox只能显示一段消息而不能输入.我们需要调用Mi ...
- 流程设计器jQuery + svg/vml(Demo3 - 添加流程结点)
经过前面的准备工作,终于把设计器的主要UI界面搭建好了,接下来到添加流程结点,效果如下图 代码:GoFlow_03.zip 演示地址:Demo 微信演示公众号: 另:Silverlight版 Silv ...
- java基础第7天
Javabean的特点 私人成员变量 公共的成员方法 利用get/set成员方法对私人变量进行取值/赋值 构造方法(构造器) 构造方法(也叫构造器)是一种特殊的方法,定义的位置是在类中,成员方法外,和 ...
- Alpha阶段第2周/共2周 Scrum立会报告+燃尽图 04
作业要求[https://edu.cnblogs.com/campus/nenu/2018fall/homework/2287] 版本控制:https://git.coding.net/liuyy08 ...