網(wǎng)站首頁(yè) 編程語(yǔ)言 正文
DateUtils.java
package com.authine.cloudpivot.ext.utils;
import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Date;
public class DateUtils {
/**
* 獲取當(dāng)月第一天
* @param date
* @return
*/
public static Date getFirstDayDateOfMonth(final Date date) {
final Calendar cal = Calendar.getInstance();
cal.setTime(date);
final int last = cal.getActualMinimum(Calendar.DAY_OF_MONTH);
cal.set(Calendar.DAY_OF_MONTH, last);
return cal.getTime();
}
/**
* 獲取當(dāng)月最后一天
* @param date
* @return
*/
public static Date getLastDayOfMonth(final Date date) {
final Calendar cal = Calendar.getInstance();
cal.setTime(date);
final int last = cal.getActualMaximum(Calendar.DAY_OF_MONTH);
cal.set(Calendar.DAY_OF_MONTH, last);
return cal.getTime();
}
/**
* 獲取下月當(dāng)天時(shí)間
* @param date
* @return
*/
public static Date getNextMonth(final Date date) {
final Calendar cal = Calendar.getInstance();
cal.setTime(date);
cal.add(Calendar.MONTH,1);
return cal.getTime();
}
/**
* 獲取上月當(dāng)天時(shí)間
* @param date
* @return
*/
public static Date getLastMonth(final Date date) {
final Calendar cal = Calendar.getInstance();
cal.setTime(date);
cal.add(Calendar.MONTH,-1);
return cal.getTime();
}
/**
* 獲取當(dāng)天開始時(shí)間
* @param date
* @return
*/
public static Date getDayBegin(final Date date) {
final Calendar cal = Calendar.getInstance();
cal.setTime(date);
cal.add(Calendar.DAY_OF_MONTH,0);
//當(dāng)天開始時(shí)間
cal.set(Calendar.HOUR_OF_DAY,0);
cal.set(Calendar.MINUTE,0);
cal.set(Calendar.SECOND,0);
cal.set(Calendar.MILLISECOND,0);
return cal.getTime();
}
/**
* 獲取當(dāng)天最后時(shí)間
* @param date
* @return
*/
public static Date getDayEnd(final Date date) {
final Calendar cal = Calendar.getInstance();
cal.setTime(date);
cal.add(Calendar.DAY_OF_MONTH,0);
//當(dāng)天結(jié)束時(shí)間
cal.set(Calendar.HOUR_OF_DAY,23);
cal.set(Calendar.MINUTE,59);
cal.set(Calendar.SECOND,59);
cal.set(Calendar.MILLISECOND,999);
return cal.getTime();
}
/**
* 獲取后一天
* @param date
* @return
*/
public static Date getNextDay(final Date date) {
final Calendar cal = Calendar.getInstance();
cal.setTime(date);
cal.add(Calendar.DATE,1);
return cal.getTime();
}
/**
* 判斷當(dāng)前日期是否是周末
* @param date
* @return
*/
public static Boolean isWeekend(Date date){
final Calendar cal = Calendar.getInstance();
cal.setTime(date);
if(cal.get(Calendar.DAY_OF_WEEK) == Calendar.SATURDAY || cal.get(Calendar.DAY_OF_WEEK) == Calendar.SUNDAY){
return true;
}
return false;
}
/**
* 獲取某季度的第一天和最后一天
*@param num 第幾季度
*/
public static String[] getCurrQuarter(int num) {
String[] s = new String[2];
String str = "";
// 設(shè)置本年的季
Calendar quarterCalendar = null;
switch (num) {
case 1: // 本年到現(xiàn)在經(jīng)過了一個(gè)季度,在加上前4個(gè)季度
quarterCalendar = Calendar.getInstance();
quarterCalendar.set(Calendar.MONTH, 3);
quarterCalendar.set(Calendar.DATE, 1);
quarterCalendar.add(Calendar.DATE, -1);
str = DateUtils.formatDate(quarterCalendar.getTime(), "yyyy-MM-dd");
s[0] = str.substring(0, str.length() - 5) + "01-01";
s[1] = str;
break;
case 2: // 本年到現(xiàn)在經(jīng)過了二個(gè)季度,在加上前三個(gè)季度
quarterCalendar = Calendar.getInstance();
quarterCalendar.set(Calendar.MONTH, 6);
quarterCalendar.set(Calendar.DATE, 1);
quarterCalendar.add(Calendar.DATE, -1);
str = DateUtils.formatDate(quarterCalendar.getTime(), "yyyy-MM-dd");
s[0] = str.substring(0, str.length() - 5) + "04-01";
s[1] = str;
break;
case 3:// 本年到現(xiàn)在經(jīng)過了三個(gè)季度,在加上前二個(gè)季度
quarterCalendar = Calendar.getInstance();
quarterCalendar.set(Calendar.MONTH, 9);
quarterCalendar.set(Calendar.DATE, 1);
quarterCalendar.add(Calendar.DATE, -1);
str = DateUtils.formatDate(quarterCalendar.getTime(), "yyyy-MM-dd");
s[0] = str.substring(0, str.length() - 5) + "07-01";
s[1] = str;
break;
case 4:// 本年到現(xiàn)在經(jīng)過了四個(gè)季度,在加上前一個(gè)季度
quarterCalendar = Calendar.getInstance();
str = DateUtils.formatDate(quarterCalendar.getTime(), "yyyy-MM-dd");
s[0] = str.substring(0, str.length() - 5) + "10-01";
s[1] = str.substring(0, str.length() - 5) + "12-31";
break;
}
return s;
}
/**
* 用途:以指定的格式格式化日期字符串
* @param pattern 字符串的格式
* @param currentDate 被格式化日期
* @return String 已格式化的日期字符串
*/
public static String formatDate(Date currentDate, String pattern){
if(currentDate == null || "".equals(pattern) || pattern == null){
return null;
}
SimpleDateFormat sdf = new SimpleDateFormat(pattern);
return sdf.format(currentDate);
}
}
原文鏈接:https://blog.csdn.net/zhouzhou992/article/details/123256271
- 上一篇:沒有了
- 下一篇:沒有了
相關(guān)推薦
- 2022-06-20 React函數(shù)組件與類組件使用及優(yōu)劣對(duì)比_React
- 2022-10-26 Android?Framework層獲取及處理按鍵事件流程_Android
- 2022-05-16 C++Smart?Pointer?智能指針詳解_C 語(yǔ)言
- 2022-08-21 Caffe卷積神經(jīng)網(wǎng)絡(luò)solver及其配置詳解_python
- 2022-07-12 for循環(huán)中var和let的不為人知的秘密
- 2022-11-17 使用flutter的showModalBottomSheet遇到的坑及解決_Android
- 2022-06-14 Redis高并發(fā)情況下并發(fā)扣減庫(kù)存項(xiàng)目實(shí)戰(zhàn)_Redis
- 2022-08-31 Flask接收上傳圖片方法實(shí)現(xiàn)_python
- 欄目分類
-
- 最近更新
-
- window11 系統(tǒng)安裝 yarn
- 超詳細(xì)win安裝深度學(xué)習(xí)環(huán)境2025年最新版(
- Linux 中運(yùn)行的top命令 怎么退出?
- MySQL 中decimal 的用法? 存儲(chǔ)小
- get 、set 、toString 方法的使
- @Resource和 @Autowired注解
- Java基礎(chǔ)操作-- 運(yùn)算符,流程控制 Flo
- 1. Int 和Integer 的區(qū)別,Jav
- spring @retryable不生效的一種
- Spring Security之認(rèn)證信息的處理
- Spring Security之認(rèn)證過濾器
- Spring Security概述快速入門
- Spring Security之配置體系
- 【SpringBoot】SpringCache
- Spring Security之基于方法配置權(quán)
- redisson分布式鎖中waittime的設(shè)
- maven:解決release錯(cuò)誤:Artif
- restTemplate使用總結(jié)
- Spring Security之安全異常處理
- MybatisPlus優(yōu)雅實(shí)現(xiàn)加密?
- Spring ioc容器與Bean的生命周期。
- 【探索SpringCloud】服務(wù)發(fā)現(xiàn)-Nac
- Spring Security之基于HttpR
- Redis 底層數(shù)據(jù)結(jié)構(gòu)-簡(jiǎn)單動(dòng)態(tài)字符串(SD
- arthas操作spring被代理目標(biāo)對(duì)象命令
- Spring中的單例模式應(yīng)用詳解
- 聊聊消息隊(duì)列,發(fā)送消息的4種方式
- bootspring第三方資源配置管理
- GIT同步修改后的遠(yuǎn)程分支