From 78ab8a882cb5e9d1c09927abdddd4a4b2e27f359 Mon Sep 17 00:00:00 2001
From: lidongdong <1459917685@qq.com>
Date: 星期三, 30 十一月 2022 13:41:44 +0800
Subject: [PATCH] Merge remote-tracking branch 'origin/huacheng_test' into huacheng_test
---
springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/utlis/DateUtils.java | 276 ++++++++++++++++++++++++++++++++++++++++++++++--------
1 files changed, 232 insertions(+), 44 deletions(-)
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/utlis/DateUtils.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/utlis/DateUtils.java
index 32e88b0..052832e 100644
--- a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/utlis/DateUtils.java
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/utlis/DateUtils.java
@@ -4,11 +4,10 @@
import java.text.SimpleDateFormat;
import java.time.*;
import java.time.format.DateTimeFormatter;
-import java.util.ArrayList;
-import java.util.Calendar;
-import java.util.Date;
-import java.util.List;
+import java.util.*;
+import cn.hutool.core.date.DateUnit;
+import cn.hutool.core.date.DateUtil;
import lombok.extern.slf4j.Slf4j;
@Slf4j
@@ -53,7 +52,7 @@
/**
* 字符串转date
- *
+ *
* @param date
* 时间戳
* @param format
@@ -74,7 +73,7 @@
/**
* 字符串转date
- *
+ *
* @param date
* 时间戳
* @return 时间
@@ -100,7 +99,7 @@
/**
* 字符串转date
- *
+ *
* @param date
* 时间戳
* @return 时间
@@ -119,7 +118,7 @@
/**
* 获取当前时间
- *
+ *
* @return
* @throws Exception
*/
@@ -130,7 +129,7 @@
/**
* 返回当前事件的时间戳
- *
+ *
* @return
*/
public static Long getCurrentDateTimeStamp() {
@@ -139,7 +138,7 @@
/**
* 获取当前时间字符串,格式为yyyy-MM-dd HH:mm:ss
- *
+ *
* @return
*/
public static String getCurrentDateStr() {
@@ -159,7 +158,7 @@
/**
* 获取当前时间字符串,格式为yyyyMMdd
- *
+ *
* @return
*/
public static String getCurrentDateString() {
@@ -169,7 +168,7 @@
/**
* 获取当前时间字符串,格式为yyyy-MM-dd
- *
+ *
* @return
*/
public static String getCurrentDateStrymd() {
@@ -184,7 +183,7 @@
/**
* 获取当前时间long值
- *
+ *
* @return
*/
public static long getCurrentDataLong() {
@@ -193,7 +192,7 @@
/**
* 获取当前时间
- *
+ *
* @param format
* @return
* @throws Exception
@@ -298,7 +297,7 @@
/**
* 对日期进行加法操作
- *
+ *
* @param date
* @param hours
* @return
@@ -315,7 +314,7 @@
/**
* 对日期的分钟进行加法操作
- *
+ *
* @param date
* @param minutes
* @return
@@ -390,7 +389,7 @@
/**
* 计算两个日期先差多少秒
- *
+ *
* @param pre
* 前一个日期
* @param after
@@ -403,7 +402,7 @@
/**
* 计算两个时间相差的天数
- *
+ *
* @param stardate
* @param enddate
* @return
@@ -416,16 +415,16 @@
long day = diff / nd;
- long hour = diff % nd / nh;
+ long hour = diff / nh;
- long min = diff % nd % nh / nm;
+ long min = diff / nm;
- return (int)day;
+ return (int)hour;
}
/**
* 结束时间与当前时间计算相差的月数
- *
+ *
* @param enddate
* @return
*/
@@ -444,7 +443,7 @@
/**
* 获取某个时间段之前的时间点
- *
+ *
* @return
*/
public static String getSomeTimeStapStr(String sign) {
@@ -489,7 +488,7 @@
/**
* 获取失效时间点(在什么时间失效)
- *
+ *
* @param minutes
* 有效分钟数
* @return
@@ -500,7 +499,7 @@
/**
* 获取当前年份
- *
+ *
* @return
*/
public static String getCurrentYear() {
@@ -510,7 +509,7 @@
/**
* 获取当前月份
- *
+ *
* @return
*/
public static String getCurrentMonth() {
@@ -527,7 +526,7 @@
/**
* 获取无符号的当前时间
- *
+ *
* @return
*/
public static String getCurrentDateStrNoSignal() {
@@ -536,7 +535,7 @@
/**
* 获取前几个小时的时间
- *
+ *
* @param hours
* @return
*/
@@ -552,7 +551,7 @@
/**
* 小时取整
- *
+ *
* @param date
* @param hour
* @return
@@ -573,7 +572,7 @@
/**
* 分钟取整 以十分钟为单位 ,去除尾端,加上 参数 46->40+minutes*10
- *
+ *
* @param date
* @param minutes
* @return
@@ -601,7 +600,7 @@
/**
* 天数取整
- *
+ *
* @param date
* @param day
* @return
@@ -622,7 +621,7 @@
/**
* 日期相加减
- *
+ *
* @param time
* 时间字符串 yyyy-MM-dd HH:mm:ss
* @param num
@@ -684,7 +683,7 @@
/**
* 获取当前月第一天
- *
+ *
* @return
*/
public static Date getFirstDayOfMonth() {
@@ -697,7 +696,7 @@
/**
* 获取当前年月的第一天时间
- *
+ *
* @param year
* 年份
* @param month
@@ -721,7 +720,7 @@
/**
* 获取当前年月的最后一天时间
- *
+ *
* @param year
* 年份
* @param month
@@ -781,7 +780,7 @@
/**
* date2比date1多的天数
- *
+ *
* @param date1
* @param date2
* @return
@@ -840,7 +839,7 @@
/**
* 获取当前月第一天
- *
+ *
* @return
*/
public static String getFirstDayOfMonthString() {
@@ -856,7 +855,7 @@
/**
* 获取当前月最后一天
- *
+ *
* @return
*/
public static String getLastDayOfMonthString() {
@@ -887,7 +886,7 @@
/**
* 获取当前时间(年月日)
- *
+ *
* @return
*/
public static String getDayOfMonthString() {
@@ -927,11 +926,10 @@
}
public static void main(String[] args) throws Exception {
- Date date= getLastMonthFirst();
- Date after = getLastMonthEnd();
- System.out.println(date);
- System.out.println(after);
-
+// List<String> beforeDays = getBeforeDays(15);
+// System.out.println(beforeDays);
+ List<String> yearMonths = getYearMonths();
+ System.out.println(yearMonths);
}
@@ -1015,4 +1013,194 @@
}
return dates;
}
+
+ /**
+ * 获取上月最后一天时间
+ * @return 上月最后一天时间
+ */
+ public static String getOldMonthLastDay(){
+ Calendar calendar=Calendar.getInstance();
+ int month=calendar.get(Calendar.MONTH);
+ calendar.set(Calendar.MONTH, month-1);
+ calendar.set(Calendar.DAY_OF_MONTH, calendar.getActualMaximum(Calendar.DAY_OF_MONTH));
+ return format_yyymmdd.format(calendar.getTime());
+ }
+
+ /**
+ * 获取上月第一天时间
+ * @return 上月第一天时间
+ */
+ public static String getOldMonthFirstDay(){
+ Calendar calendar=Calendar.getInstance();
+ calendar.add(Calendar.MONTH, -1);
+ calendar.set(Calendar.DAY_OF_MONTH, 1);
+ return format_yyymmdd.format(calendar.getTime());
+ }
+
+ /**
+ * 获取某年的月份最后一天时间
+ * @param year 年份
+ * @return 月份list
+ */
+ public static List<String> getYearLastMonths(Integer year){
+ List<String> list = new ArrayList<>();
+ list.add(getLastDayOfMonth(year,1));
+ list.add(getLastDayOfMonth(year,2));
+ list.add(getLastDayOfMonth(year,3));
+ list.add(getLastDayOfMonth(year,4));
+ list.add(getLastDayOfMonth(year,5));
+ list.add(getLastDayOfMonth(year,6));
+ list.add(getLastDayOfMonth(year,7));
+ list.add(getLastDayOfMonth(year,8));
+ list.add(getLastDayOfMonth(year,9));
+ list.add(getLastDayOfMonth(year,10));
+ list.add(getLastDayOfMonth(year,11));
+ list.add(getLastDayOfMonth(year,12));
+ return list;
+ }
+
+ /**
+ * 获取某年的月份第一天时间
+ * @param year 年份
+ * @return 月份list
+ */
+ public static List<String> getYearFirstMonths(Integer year){
+ List<String> list = new ArrayList<>();
+ list.add(getFirstDayOfMonth(year,1));
+ list.add(getFirstDayOfMonth(year,2));
+ list.add(getFirstDayOfMonth(year,3));
+ list.add(getFirstDayOfMonth(year,4));
+ list.add(getFirstDayOfMonth(year,5));
+ list.add(getFirstDayOfMonth(year,6));
+ list.add(getFirstDayOfMonth(year,7));
+ list.add(getFirstDayOfMonth(year,8));
+ list.add(getFirstDayOfMonth(year,9));
+ list.add(getFirstDayOfMonth(year,10));
+ list.add(getFirstDayOfMonth(year,11));
+ list.add(getFirstDayOfMonth(year,12));
+ return list;
+ }
+
+ /**
+ * 获取某年某月最后一天
+ * @param year 年份
+ * @param month 月份
+ * @return 某年某月最后一天
+ */
+ public static String getLastDayOfMonth(int year,int month)
+ {
+ Calendar cal = Calendar.getInstance();
+ //设置年份
+ cal.set(Calendar.YEAR,year);
+ //设置月份
+ cal.set(Calendar.MONTH, month-1);
+ //获取某月最大天数
+ int lastDay = cal.getActualMaximum(Calendar.DAY_OF_MONTH);
+ //设置日历中月份的最大天数
+ cal.set(Calendar.DAY_OF_MONTH, lastDay);
+ //格式化日期
+ SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
+ String lastDayOfMonth = sdf.format(cal.getTime());
+ return lastDayOfMonth;
+ }
+
+ /**
+ * 获取某年某月的第一天
+ * @param year 年份
+ * @param month 月份
+ * @return 某年某月第一天
+ */
+ public static String getFirstDayOfMonth(int year,int month)
+ {
+ Calendar cal = Calendar.getInstance();
+ //设置年份
+ cal.set(Calendar.YEAR,year);
+ //设置月份
+ cal.set(Calendar.MONTH, month-1);
+ //获取某月最小天数
+ int firstDay = cal.getActualMinimum(Calendar.DAY_OF_MONTH);
+ //设置日历中月份的最小天数
+ cal.set(Calendar.DAY_OF_MONTH, firstDay);
+ //格式化日期
+ SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
+ String firstDayOfMonth = sdf.format(cal.getTime());
+
+ return firstDayOfMonth;
+ }
+
+ /**
+ * 获取20天前那天时间
+ *
+ * @return
+ */
+ public static String getTwentyDay() {
+ Calendar cal = Calendar.getInstance();
+ cal.setTime(new Date());
+ cal.add(Calendar.DATE, -20);
+
+ return DateUtil.format(cal.getTime(),"yyyy-MM-dd");
+ }
+
+ /**
+ * 获取之前的日期
+ *
+ * @return
+ */
+ public static String getBeforeDay(Integer amount) {
+ Calendar cal = Calendar.getInstance();
+ cal.setTime(new Date());
+ cal.add(Calendar.DATE, -amount);
+ return DateUtil.format(cal.getTime(),"yyyy-MM-dd");
+ }
+
+ /**
+ * 获取最近本月20天数据
+ *
+ * @return
+ */
+ public static String getMonthTwentyDay() {
+ Date date = new Date();
+ Long offset = DateUtil.between(new Date(), DateUtil.beginOfMonth(date), DateUnit.DAY);
+ if (offset >= 20) {
+ return getTwentyDay();
+ } else {
+ //距离月初不足20天
+ Calendar calendar = new GregorianCalendar();
+ calendar.setTime(date);
+ //获得本月第一天
+ calendar.add(Calendar.MONTH, 0);
+ calendar.set(Calendar.DAY_OF_MONTH, 1);
+ return DateUtil.format(calendar.getTime(),"yyyy-MM-dd");
+ }
+
+ }
+
+ public static List<String> getBeforeDays(int before) {
+ List<String> dates = new ArrayList<>();
+ for (int i = before; i >= 0; i--) {
+ dates.add(getBeforeDay(i));
+ }
+ return dates;
+ }
+
+ /**
+ * 获取当年所有月份
+ *
+ * @return
+ */
+ public static List<String> getYearMonths() {
+ Calendar instance = Calendar.getInstance();
+ int year = instance.get(Calendar.YEAR);
+ List<String> months = new ArrayList<>();
+ for (int i = 1; i <= 12; i++) {
+ String result = String.valueOf(year);
+ if (i < 10) {
+ result = result + "-0" +i;
+ } else {
+ result = result + "-"+i;
+ }
+ months.add(result);
+ }
+ return months;
+ }
}
--
Gitblit v1.7.1