一、参考文章
LocalDateTime工具类:根据当前、周、月、季度、半年、年等维度获取时间
二、常用
/**
* <p>获取当前月的范围内的所有时间<p>
*/
public static void between(){
LocalDateTime first = LocalDateTime.of(LocalDate.now().with(TemporalAdjusters.firstDayOfMonth()), LocalTime.MIN);
List list = new ArrayList<>();
Stream.iterate(first, date -> date.plusDays(1)).limit(LocalDate.now().lengthOfMonth())
.forEach(date -> list.add(date.format(DateTimeFormatter.ofPattern("yyyy-MM-dd"))));
return list;
}
/**
* 两个日期间隔天数
* @param day0
* @param day1
* @return long
*/
public static long daysInterval(LocalDate day0, LocalDate day1) {
return DAYS.between(day0, day1);
}
/**
* 时间:localDateTime -》 Date
* @return java.util.Date
*/
public static Date localDateTime2Date(LocalDateTime localDateTime) {
return Date.from(localDateTime.atZone(ZoneId.systemDefault()).toInstant());
}
/**
* 时间:字符串 -》 Date
* @param date
* @param datePattern
* @return java.util.Date
*/
public static Date string2Date(String date, String datePattern) {
return Date.from(LocalDateTime.parse(date, DateTimeFormatter.ofPattern(datePattern)).atZone(ZoneId.systemDefault()).toInstant());
}
/**
* 时间:Date -》 字符串
* @param date
* @param datePattern
* @return java.util.Date
*/
public static String date2String(Date date, String datePattern) {
return date.toInstant().atOffset(ZoneOffset.of("+8")).toLocalDateTime().format(DateTimeFormatter.ofPattern(datePattern));
}
/**
* 时间:Date -》 LocalDate
* @param date
* @return java.util.Date
*/
public static LocalDate date2LocalDate(Date date) {
return date.toInstant().atZone(ZoneId.systemDefault()).toLocalDate();
}
/**
* 字符串 -》 LocalDate
* @param date
* @param datePattern
* @return java.time.LocalDate
*/
public static LocalDate string2LocalDate(String date,String datePattern) {
return LocalDate.parse(date, DateTimeFormatter.ofPattern(datePattern));
}
/**
* 字符串 -》 LocalDateTime
* @param date
* @param datePattern
* @return java.time.LocalDateTime
*/
public static LocalDateTime string2LocalDateTime(String date,String datePattern) {
return LocalDateTime.parse(date, DateTimeFormatter.ofPattern(datePattern));
}
/**
* <p>将时间格式化成字符串<p>
* @author penghao.wang
* @date 2022/5/7 10:51
* @param localDateTime
* @param pattern 时间格式,如yyyy-MM-dd等
* @return java.lang.String
*/
public static String localDateTime2String(LocalDateTime localDateTime,String pattern){
return localDateTime.format(DateTimeFormatter.ofPattern(pattern));
}
/**
* <p>将时间格式化成字符串<p>
* @param localDate
* @param pattern 时间格式,如yyyy-MM-dd等
* @return java.lang.String
*/
public static String localDate2String(LocalDate localDate,String pattern){
return localDate.format(DateTimeFormatter.ofPattern(pattern));
}
三、注意
1、HH是24小时制,hh是12小时制。大写的H是二十四小时制的小时数(0-23),小写的h是十二小时制的小时数(am/pm 1-12)
记录一些常用的,未完待续。。。