package com.zy.crm.manager.utils;
|
|
import java.time.LocalDate;
|
import java.time.LocalTime;
|
import java.time.format.DateTimeFormatter;
|
import java.time.temporal.ChronoUnit;
|
import java.util.Calendar;
|
import java.util.Date;
|
import java.util.TimeZone;
|
|
public class TimeCalculatorUtils {
|
|
public static int getTimeHour(){
|
//如何获取当前时间的小时数(24小时制):
|
// 获取当前时间戳
|
long timestamp = System.currentTimeMillis();
|
|
// 创建Date对象,并设置时间戳
|
Date date = new Date(timestamp);
|
|
// 创建TimeZone对象,设置为中国北京时间
|
TimeZone timeZone = TimeZone.getTimeZone("Asia/Shanghai");
|
|
// 创建Calendar对象,并设置时区
|
// 注意:Calendar类中的月份是从0开始的,所以需要减去1
|
java.util.Calendar calendar = java.util.Calendar.getInstance(timeZone);
|
calendar.setTime(date);
|
|
// 获取当前小时数(24小时制)
|
return calendar.get(java.util.Calendar.HOUR_OF_DAY);
|
}
|
|
public static int getTimeHour(Date date){
|
// 创建TimeZone对象,设置为中国北京时间
|
TimeZone timeZone = TimeZone.getTimeZone("Asia/Shanghai");
|
|
// 创建Calendar对象,并设置时区
|
// 注意:Calendar类中的月份是从0开始的,所以需要减去1
|
java.util.Calendar calendar = java.util.Calendar.getInstance(timeZone);
|
calendar.setTime(date);
|
|
// 获取当前小时数(24小时制)
|
return calendar.get(java.util.Calendar.HOUR_OF_DAY);
|
}
|
|
public static Date getYesterday(Date date){
|
Calendar calendar = Calendar.getInstance();
|
calendar.setTime(date);
|
calendar.add(Calendar.DAY_OF_MONTH, -1);
|
return calendar.getTime();
|
}
|
|
public static String getYestMonthDay(Date date){
|
Calendar calendar = Calendar.getInstance();
|
calendar.setTime(date);
|
|
int year = calendar.get(Calendar.YEAR);
|
int month = calendar.get(Calendar.MONTH) + 1; // 月份从0开始,需要加1
|
int day = calendar.get(Calendar.DAY_OF_MONTH);
|
return year+"年"+month+"月"+day+"日";
|
}
|
|
public static int getDifferenceDayInt(Date startDay,Date endDay){
|
return getDifferenceDayLong(startDay,endDay).intValue();
|
}
|
|
public static Long getDifferenceDayLong(Date startDay,Date endDay){
|
LocalDate localDateA = dateToLocalDate(startDay);
|
LocalDate localDateB = dateToLocalDate(endDay);
|
|
return getDifferenceDays(localDateA, localDateB);
|
}
|
|
public static Long getDifferenceDayDouble(String startDay,String endDay){
|
// 定义日期字符串的格式
|
DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy年M月d日ahh:mm");
|
|
// 将日期字符串解析为LocalDate对象
|
LocalDate dateA = LocalDate.parse(startDay, formatter);
|
LocalDate dateB = LocalDate.parse(endDay, formatter);
|
|
// 计算日期对象之间的相隔天数
|
return ChronoUnit.DAYS.between(dateA, dateB);
|
|
}
|
|
private static String getDatePart(String dateTime) {
|
int index = dateTime.indexOf(" ");
|
if (index != -1) {
|
return dateTime.substring(0, index);
|
}
|
return dateTime;
|
}
|
|
private static String getTimePart(String dateTime) {
|
int index = dateTime.indexOf(" ");
|
if (index != -1) {
|
return dateTime.substring(index + 1);
|
}
|
return "";
|
}
|
|
private static LocalDate dateToLocalDate(Date date) {
|
return date.toInstant().atZone(java.time.ZoneId.systemDefault()).toLocalDate();
|
}
|
|
private static long getDifferenceDays(LocalDate dateA, LocalDate dateB) {
|
return ChronoUnit.DAYS.between(dateA, dateB);
|
}
|
}
|