package com.yz.util;
import java.text.SimpleDateFormat;
import java.time.Duration;
import java.time.LocalDateTime;
import java.time.LocalTime;
import java.time.format.DateTimeFormatter;
import java.util.*;
public class TimeUtil {
/**
* 计算当前时间到24点秒数
*
* @return
*/
public static int leftDayTime() {
Calendar c = Calendar.getInstance();
long now = c.getTimeInMillis();
c.add(Calendar.DAY_OF_MONTH, 1);
c.set(Calendar.HOUR_OF_DAY, 0);
c.set(Calendar.MINUTE, 0);
c.set(Calendar.SECOND, 0);
c.set(Calendar.MILLISECOND, 0);
long millis = c.getTimeInMillis() - now;
int leftDayTime = (int) millis / 1000;
return leftDayTime;
}
/**
* 获得每天0点
*
* @return
*/
public static LocalDateTime getStartTime() {
LocalDateTime now = LocalDateTime.now();
LocalDateTime startTime = LocalDateTime.of(now.toLocalDate(), LocalTime.MIN);
return startTime;
}
/**
* 获得每天24点
*
* @return
*/
public static LocalDateTime getEndTime() {
LocalDateTime now = LocalDateTime.now();
LocalDateTime endTime = LocalDateTime.of(now.toLocalDate(), LocalTime.MAX);
return endTime;
}
/**
* 获得每天0点字符串
*
* @return
*/
public static String getStartTimeString(String today) {
return today + " 00:00:00";
}
/**
* 获得每天24点字符串
*
* @return
*/
public static String getEndTimeString(String today) {
return today + " 24:00:00";
}
/**
* @return
*/
public static List<String> getWeek() {
List<String> week = new ArrayList<>();
Date date = new Date();
week.add(new SimpleDateFormat("yyyy-MM-dd").format(date));
for (int i = 0; i < 6; i++) {
Calendar calendar = Calendar.getInstance();
calendar.setTime(date);
calendar.add(calendar.DATE, -1);
date = calendar.getTime();
String day = new SimpleDateFormat("yyyy-MM-dd").format(date);
week.add(day);
}
Collections.reverse(week);
return week;
}
/**
* 获得时分秒年月日字符串
*
* @return
*/
public static String getYMDHMS() {
Date date = new Date();
String ymd[] = new SimpleDateFormat("yyyy-MM-dd").format(date).split("-");
String hms[] = new SimpleDateFormat("HH:mm:ss").format(date).split(":");
return ymd[0] + ymd[1] + ymd[2] + hms[0] + hms[1] + hms[2];
}
// 获得当天0点时间
public static Date getTimesmorning() {
Calendar cal = Calendar.getInstance();
cal.set(Calendar.HOUR_OF_DAY, 0);
cal.set(Calendar.SECOND, 0);
cal.set(Calendar.MINUTE, 0);
cal.set(Calendar.MILLISECOND, 0);
return cal.getTime();
}
// 获得昨天0点时间
public static Date getYesterdaymorning() {
Calendar cal = Calendar.getInstance();
cal.setTimeInMillis(getTimesmorning().getTime() - 3600 * 24 * 1000);
return cal.getTime();
}
// 获得当天近7天时间
public static Date getWeekFromNow() {
Calendar cal = Calendar.getInstance();
cal.setTimeInMillis(getTimesmorning().getTime() - 3600 * 24 * 1000 * 7);
return cal.getTime();
}
// 获得当天24点时间
public static Date getTimesnight() {
Calendar cal = Calendar.getInstance();
cal.set(Calendar.HOUR_OF_DAY, 24);
cal.set(Calendar.SECOND, 0);
cal.set(Calendar.MINUTE, 0);
cal.set(Calendar.MILLISECOND, 0);
return cal.getTime();
}
// 获得本周一0点时间
public static Date getTimesWeekmorning() {
Calendar cal = Calendar.getInstance();
cal.set(cal.get(Calendar.YEAR), cal.get(Calendar.MONDAY), cal.get(Calendar.DAY_OF_MONTH), 0, 0, 0);
cal.set(Calendar.DAY_OF_WEEK, Calendar.MONDAY);
return cal.getTime();
}
// 获得本周日24点时间
public static Date getTimesWeeknight() {
Calendar cal = Calendar.getInstance();
cal.setTime(getTimesWeekmorning());
cal.add(Calendar.DAY_OF_WEEK, 7);
return cal.getTime();
}
// 获得本月第一天0点时间
public static Date getTimesMonthmorning() {
Calendar cal = Calendar.getInstance();
cal.set(cal.get(Calendar.YEAR), cal.get(Calendar.MONDAY), cal.get(Calendar.DAY_OF_MONTH), 0, 0, 0);
cal.set(Calendar.DAY_OF_MONTH, cal.getActualMinimum(Calendar.DAY_OF_MONTH));
return cal.getTime();
}
// 获得本月最后一天24点时间
public static Date getTimesMonthnight() {
Calendar cal = Calendar.getInstance();
cal.set(cal.get(Calendar.YEAR), cal.get(Calendar.MONDAY), cal.get(Calendar.DAY_OF_MONTH), 0, 0, 0);
cal.set(Calendar.DAY_OF_MONTH, cal.getActualMaximum(Calendar.DAY_OF_MONTH));
cal.set(Calendar.HOUR_OF_DAY, 24);
return cal.getTime();
}
public static Date getLastMonthStartMorning() {
Calendar cal = Calendar.getInstance();
cal.setTime(getTimesMonthmorning());
cal.add(Calendar.MONTH, -1);
return cal.getTime();
}
/**
* 当前季度的开始时间,即2012-03-31 23:59:59
*
* @return
*/
public static Date getCurrentQuarterStartTime() {
Calendar c = Calendar.getInstance();
int currentMonth = c.get(Calendar.MONTH) + 1;
SimpleDateFormat longSdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
SimpleDateFormat shortSdf = new SimpleDateFormat("yyyy-MM-dd");
Date now = null;
try {
if (currentMonth >= 1 && currentMonth <= 3)
c.set(Calendar.MONTH, 0);
else if (currentMonth >= 4 && currentMonth <= 6)
c.set(Calendar.MONTH, 3);
else if (currentMonth >= 7 && currentMonth <= 9)
c.set(Calendar.MONTH, 4);
else if (currentMonth >= 10 && currentMonth <= 12)
c.set(Calendar.MONTH, 9);
c.set(Calendar.DATE, 1);
now = longSdf.parse(shortSdf.format(c.getTime()) + " 00:00:00");
} catch (Exception e) {
e.printStackTrace();
}
return now;
}
/**
* 当前季度的结束时间,即2012-03-31 23:59:59
*
* @return
*/
public static Date getCurrentQuarterEndTime() {
Calendar cal = Calendar.getInstance();
cal.setTime(getCurrentQuarterStartTime());
cal.add(Calendar.MONTH, 3);
return cal.getTime();
}
public static Date getCurrentYearStartTime() {
Calendar cal = Calendar.getInstance();
cal.set(cal.get(Calendar.YEAR), cal.get(Calendar.MONDAY), cal.get(Calendar.DAY_OF_MONTH), 0, 0, 0);
cal.set(Calendar.DAY_OF_MONTH, cal.getActualMinimum(Calendar.YEAR));
return cal.getTime();
}
public static Date getCurrentYearEndTime() {
Calendar cal = Calendar.getInstance();
cal.setTime(getCurrentYearStartTime());
cal.add(Calendar.YEAR, 1);
return cal.getTime();
}
public static Date getLastYearStartTime() {
Calendar cal = Calendar.getInstance();
cal.setTime(getCurrentYearStartTime());
cal.add(Calendar.YEAR, -1);
return cal.getTime();
}
/**
* @param second 秒
* @description: 秒转换为时分秒 HH:mm:ss 格式 仅当小时数大于0时 展示HH
* @return: {@link String}
* @author: pzzhao
* @date: 2022-05-08 13:55:17
*/
public static String second2Time(Long second) {
if (second == null || second < 0) {
return "00:00";
}
long h = second / 3600;
long m = (second % 3600) / 60;
long s = second % 60;
String str = "";
if (h > 0) {
str = (h < 10 ? ("0" + h) : h) + ":";
}
str += (m < 10 ? ("0" + m) : m) + ":";
str += (s < 10 ? ("0" + s) : s);
return str;
}
}
JAVA 获取 本季度起始时间 本月起始时间 等等工具类
最新推荐文章于 2023-12-25 16:04:49 发布