原 java 8 日期工具类
版权声明:本文为博主原创文章,请尊重他人的劳动成果,转载请附上原文出处链接和本声明。
本文链接:https://www.91mszl.com/zhangwuji/article/details/1352
package com.mszl.utils;
import java.time.*;
import java.time.format.DateTimeFormatter;
import java.time.temporal.TemporalAdjusters;
/**
* 功能:https://91mszl.com
* @Author: zxb
* @Date: 2022-01-11 14:20:01
*/
public class DateUtils {
public static final String DATE_FORMAT_YYYY_MM_DD="yyyy-MM-dd";
public static final String DATE_FORMAT_YYYY_MM_DD_HH_MM_SS="yyyy-MM-dd HH:mm:ss";
public static final String CRON_DATE_FORMAT="ss mm HH dd MM ? yyyy";
/**
* 功能:获取当前时间:年月日
* 备注:返回LocalDate
*/
public static LocalDate currentDate(){
LocalDate ld=LocalDate.now();
return ld;
}
/**
* 功能:获取当前时间:时分秒
* 备注:返回LocalTime
*/
public static LocalTime currentTimeHms(){
LocalTime lt = LocalTime.now();
return lt;
}
/**
* 功能:获取当前时间:年月日时分秒
* 备注:返回LocalDateTime
*/
public static LocalDateTime currentTime(){
LocalDateTime lt=LocalDateTime.now();
return lt;
}
/**
* 功能:获取当前日期的前一秒:如今天是2022-01-11 13:57:20 则前一秒为2022-01-11 13:57:19
*/
public static LocalDateTime lastSecond(){
LocalDateTime lt=LocalDateTime.now();
LocalDateTime lastHour=lt.minusSeconds(1);
return lastHour;
}
/**
* 功能:获取当前日期的后一秒:如今天是2022-01-11 13:57:20 则后一秒为2022-01-11 13:57:21
*/
public static LocalDateTime nextSecond(){
LocalDateTime lt=LocalDateTime.now();
LocalDateTime lastHour=lt.plusSeconds(1);
return lastHour;
}
/**
* 功能:获取当前日期的前一分钟:如今天是2022-01-11 13:57:00 则前一分钟为2022-01-11 13:56:00
*/
public static LocalDateTime lastMinute(long minutes){
LocalDateTime lt=LocalDateTime.now();
LocalDateTime lastHour=lt.minusMinutes(minutes);
return lastHour;
}
/**
* 功能:获取当前日期的后一分钟:如今天是2022-01-11 13:57:00 则后一分钟为2022-01-11 13:58:00
*/
public static LocalDateTime nextMinute(){
LocalDateTime lt=LocalDateTime.now();
LocalDateTime lastHour=lt.plusMinutes(1);
return lastHour;
}
/**
* 功能:获取当前日期的前一小时:如今天是2022-1-11 13:49:00 则前一小时为2022-01-11 12:49:00
*/
public static LocalDateTime lastHour(long hours){
LocalDateTime lt=LocalDateTime.now();
LocalDateTime lastHour=lt.minusHours(hours);
return lastHour;
}
/**
* 功能:获取当前日期的后一小时:如今天是2022-1-11 13:49:00 则后一小时为2022-01-11 14:49:00
*/
public static LocalDateTime nextHour(){
LocalDateTime lt=LocalDateTime.now();
LocalDateTime lastHour=lt.plusHours(1);
return lastHour;
}
/**
* 功能:获取当前日期的前一天:如今天是2021-11-2则前一天为2021-11-1、
* 备注:返回年月日时分秒
*/
public static LocalDateTime lastDay(long days){
LocalDateTime ld=LocalDateTime.now();
LocalDateTime lastDay=ld.minusDays(days);
return lastDay;
}
/**
* 功能:获取当前日期的前一天:如今天是2021-11-2则前一天为2021-11-1
* 备注:返回年月日
*/
public static LocalDate yesterday(){
LocalDate ld=LocalDate.now();
LocalDate yesterday=ld.minusDays(1);
return yesterday;
}
/**
* 功能:获取当前日期的后一天:如今天是2021-11-2则后一天为2021-11-3
*/
public static LocalDate tomorrow(){
LocalDate ld=LocalDate.now();
LocalDate tw=ld.plusDays(1);
return tw;
}
/**
* 功能:获取当前日期的上一周:如今天是2022-01-11则上一周为2022-01-04
*/
public static LocalDate lastWeek(){
LocalDate ld=LocalDate.now();
LocalDate tw=ld.minusWeeks(1);
return tw;
}
/**
* 功能:获取当前日期的上一周:如今天是2022-01-11则上一周为2022-01-18
*/
public static LocalDate nextWeek(){
LocalDate ld=LocalDate.now();
LocalDate tw=ld.plusWeeks(1);
return tw;
}
/**
* 功能:获取当前日期的上一个月:如今天是2021-11-2则上一个月为2021-10-2
*/
public static LocalDate lastMonth(){
LocalDate ld=LocalDate.now();
LocalDate lm=ld.minusMonths(1);
return lm;
}
/**
* 功能:获取当前日期的下一个月:如今天是2021-11-2则下一个月为2021-12-2
*/
public static LocalDate nextMonth(){
LocalDate ld=LocalDate.now();
LocalDate nm=ld.plusMonths(1);
return nm;
}
/**
* 功能:获取当前日期的上一年:如今天是2022-01-11则上一年为2021-01-11
*/
public static LocalDate lastYear(){
LocalDate ld=LocalDate.now();
LocalDate lm=ld.minusYears(1);
return lm;
}
/**
* 功能:获取当前日期的下一年:如今天是2022-01-11则下一年为2023-01-11
*/
public static LocalDate nextYear(){
LocalDate ld=LocalDate.now();
LocalDate lm=ld.plusYears(1);
return lm;
}
/**
* 功能:获取今天是本月第几天:如今天是2021-11-2则今天为本月的第2天
*/
public static int dayOfMonth(){
LocalDate ld=LocalDate.now();
int dm=ld.getDayOfMonth();
return dm;
}
/**
* 功能:获取今天是本周第几天:如今天是2021-11-2则今天为本周的第2天
*/
public static int dayOfWeek(){
LocalDate ld=LocalDate.now();
int dw=ld.getDayOfWeek().getValue();
return dw;
}
/**
* 功能:获取今天是本年第几天:如今天是2021-11-2则今天为本年的第306天
*/
public static int dayOfYear(){
LocalDate ld=LocalDate.now();
int dy=ld.getDayOfYear();
return dy;
}
/**
* 功能:获取本月天数:如今天是2021-11-2则本月一共有30天
*/
public static int daysOfMonth(){
LocalDate ld=LocalDate.now();
int dm=ld.lengthOfMonth();
return dm;
}
/**
* 功能:获取本年天数:如今天是2021-11-2则本年一共有365天
*/
public static int daysOfYear(){
LocalDate ld=LocalDate.now();
int dy=ld.lengthOfYear();
return dy;
}
/**
* 功能: 获取本月指定的第 n天:如今天是2021-11-2指定第n天为20则结果为2021-11-20
*/
public static LocalDate withDayOfMonth(){
LocalDate ld=LocalDate.now();
LocalDate date1=ld.withDayOfMonth(20);
return date1;
}
/**
* 功能: 获取本月的最后一天:如今天是2021-11-2则最后一天为2021-11-30
*/
public static LocalDate lastDaysOfMonth(){
LocalDate ld=LocalDate.now();
LocalDate lm=ld.with(TemporalAdjusters.lastDayOfMonth());
return lm;
}
/**
* 功能:将String转为LocalDateTime,格式为年月日时分秒
*/
public static LocalDateTime strConvertToLocalDateTime(String str){
DateTimeFormatter df=DateTimeFormatter.ofPattern(DATE_FORMAT_YYYY_MM_DD_HH_MM_SS);
LocalDateTime lt=LocalDateTime.parse(str, df);
return lt;
}
/**
* 功能:将String转为LocalDate,格式为年月日
*/
public static LocalDate strConvertToLocalDate(String str){
DateTimeFormatter df=DateTimeFormatter.ofPattern(DATE_FORMAT_YYYY_MM_DD_HH_MM_SS);
LocalDate lt=LocalDate.parse(str, df);
return lt;
}
/**
* 功能:将LocalDateTime转为String,格式为年月日时分秒
*/
public static String LocalDateTimeConvertToStr(LocalDateTime ldt){
DateTimeFormatter df=DateTimeFormatter.ofPattern(DATE_FORMAT_YYYY_MM_DD_HH_MM_SS);
String str=df.format(ldt);
return str;
}
public static String LocalDateConvertToStr(LocalDate ld){
DateTimeFormatter df=DateTimeFormatter.ofPattern(DATE_FORMAT_YYYY_MM_DD);
String str=df.format(ld);
return str;
}
/**
* 功能:获取当前时间戳
*/
public static long currentTimestamp(){
long timestamp=LocalDateTime.now().toInstant(ZoneOffset.of("+8")).toEpochMilli();
return timestamp;
}
/**
* 功能:LocalDateTime转时间戳
*/
public static long LocalDateTimeConvertToTimestamp(LocalDateTime ldt){
long timestamp=ldt.toInstant(ZoneOffset.ofHours(8)).toEpochMilli();
return timestamp;
}
/**
* 功能:将时间戳转成成LocalDate
*/
public static LocalDate timestampConvertToLocalDate(long timestamp){
LocalDate ld=Instant.ofEpochMilli(timestamp).atZone(ZoneOffset.ofHours(8)).toLocalDate();
return ld;
}
/**
* 功能:将时间戳转换成LocalDateTime
*/
public static LocalDateTime timestampConvertToLocalDateTime(long timestamp){
LocalDateTime localDateTime=LocalDateTime.ofInstant(Instant.ofEpochMilli(timestamp), ZoneId.systemDefault()); // 方式一
// LocalDateTime localDateTime=Instant.ofEpochMilli(timestamp).atZone(ZoneOffset.ofHours(8)).toLocalDateTime(); // 方式二
return localDateTime;
}
/**
* 功能:将LocalDateTime转换成cron表达式
*/
public static String LocalDateTimeConvertToCron(LocalDateTime ldt){
DateTimeFormatter df=DateTimeFormatter.ofPattern(CRON_DATE_FORMAT);
String str=df.format(ldt);
return str;
}
public static void main(String[] args) {
LocalDateTime lt=LocalDateTime.now();
String result=LocalDateTimeConvertToCron(lt);
System.out.println(result);
}
}
2021-11-05 09:12:42 阅读(580)
名师出品,必属精品 https://www.91mszl.com
博主信息