public class DateCommonUtils {
/**
* 取出两个日期的合集
*
* @param beginDate
* @param endDate
* @return
* @throws ParseException
*/
public static List<String> getDayBySpace(String beginDate, String endDate) throws ParseException {
SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd");
List<String> days = new ArrayList<String>();
Date start = format.parse(beginDate);
Date end = format.parse(endDate);
Calendar tempStart = Calendar.getInstance();
tempStart.setTime(start);
Calendar tempEnd = Calendar.getInstance();
tempEnd.setTime(end);
tempEnd.add(Calendar.DATE, +1);
while (tempStart.before(tempEnd)) {
days.add(format.format(tempStart.getTime()));
tempStart.add(Calendar.DAY_OF_YEAR, 1);
}
return days;
}
/**
* 时间戳转 localDateTime
*
* @param longTime
* @return
*/
public static LocalDateTime long2LocalDateTime(Long longTime) {
return LocalDateTime.ofInstant(Instant.ofEpochMilli(longTime), ZoneId.systemDefault());
}
/**
* 时间戳转 localDate
*
* @param longTime
* @return
*/
public static LocalDate long2LocalDate(Long longTime) {
return LocalDateTime.ofInstant(Instant.ofEpochMilli(longTime), ZoneId.systemDefault()).toLocalDate();
}
/**
* String 转 localDate
*
* @param dateTime
* @param formatter
* @return
*/
public static LocalDate string2LocalDate(String dateTime, String formatter) {
return LocalDate.parse(dateTime, DateTimeFormatter.ofPattern(formatter));
}
/**
* String 转 localDateTime
*
* @param dateTime
* @param formatter
* @return
*/
public static LocalDateTime string2LocalDateTime(String dateTime, String formatter) {
return LocalDateTime.parse(dateTime, DateTimeFormatter.ofPattern(formatter));
}
/**
* localDateTime 2 long
*
* @param localDateTime
* @return
*/
public static Long localDateTime2Long(LocalDateTime localDateTime) {
return localDateTime.atZone(ZoneId.systemDefault()).toInstant().toEpochMilli();
}
/**
* localDate 2 long
*
* @param localDate
* @return
*/
public static Long localDate2Long(LocalDate localDate) {
return localDate.atStartOfDay(ZoneId.systemDefault()).toInstant().toEpochMilli();
}
public static Date localDate2Date(LocalDate localDate) {
ZonedDateTime zonedDateTime = localDate.atStartOfDay(ZoneId.systemDefault());
return Date.from(zonedDateTime.toInstant());
}
/**
* 比较时间与当前时间距离几个月
*
* @param afterDate 后时间
* @param beforeDate 前时间
* @return
*/
public static int compareWithNow(String beforeDate, String afterDate) {
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM");
String afferentYearMonth = string2LocalDate(afterDate, "yyyy-MM-dd").format(DateTimeFormatter.ofPattern("yyyy-MM"));
String nowYearMonth = string2LocalDate(beforeDate, "yyyy-MM-dd").format(DateTimeFormatter.ofPattern("yyyy-MM"));
Calendar afferent = Calendar.getInstance();
Calendar now = Calendar.getInstance();
try {
afferent.setTime(sdf.parse(afferentYearMonth));
now.setTime(sdf.parse(nowYearMonth));
} catch (ParseException e) {
e.printStackTrace();
}
int year = (now.get(Calendar.YEAR) - afferent.get(Calendar.YEAR)) * 12;
int month = now.get(Calendar.MONTH) - afferent.get(Calendar.MONTH);
return Math.abs(year + month);
}
/**
* 获取月份最后一天
*
* @return
*/
public static Date getMonthMaxDate(String date) {
Calendar calendar2 = Calendar.getInstance();
calendar2.setTime(localDate2Date(string2LocalDate(date, "yyyy-MM-dd")));
calendar2.set(Calendar.DAY_OF_MONTH, calendar2.getActualMaximum(Calendar.DAY_OF_MONTH));
return calendar2.getTime();
}
/**
* 获取月份第一天
*
* @return
*/
public static Date getMonthMinDate(String date) {
Calendar calendar = Calendar.getInstance();
calendar.setTime(localDate2Date(string2LocalDate(date, "yyyy-MM-dd")));
calendar.set(Calendar.DAY_OF_MONTH, calendar.getActualMinimum(Calendar.DAY_OF_MONTH));
return calendar.getTime();
}
}
JAVA常用的日期工具类
最新推荐文章于 2023-06-13 18:13:32 发布