1.通过开始时间和结束时间,格式"yyyy-MM-dd HH:mm:ss",处理这一段时间内的时间,分别形成以日、周、月的连续时间段数组或集合,这样的时间集合对于我们在做树状的统计非常有帮助;其次是用到了hutool工具中的DateUtil.rangeToList()方法;
private List<TasksFinshedStatisticsVo> handleDayAndMonthResult(List<TasksFinshedStatisticsVo>initResult,TaskExeStatisticDto params){
String begin = params.getStartTime();
String end = params.getEndTime();
String btime = begin.substring(0, 10);//yyyy-MM-dd
String etime = end.substring(0, 10);
Date bDate = DateUtil.parse(btime, DatePattern.NORM_DATE_PATTERN);//yyyy-MM-dd
Date eDate = DateUtil.parse(etime, DatePattern.NORM_DATE_PATTERN);
List<DateTime> dateList = DateUtil.rangeToList(bDate,eDate,DateField.DAY_OF_YEAR);//创建日期范围生成器
for (Date date : dateList) {
TasksFinshedStatisticsVo element = new TasksFinshedStatisticsVo();
element.setDates(new SimpleDateFormat(DatePattern.NORM_DATE_PATTERN).format(date));
element.setTasksFinshed(0);
initResult.add(element);
}
return initResult;
}
private List<DateTime> parasTime(Date bDate,Date eDate,DateField unit){
List<DateTime> dateList = DateUtil.rangeToList(bDate, eDate,unit);
return dateList;
}
2.String字符串"yyyy-MM-dd HH:mm:ss" 转 LocalDateTime 没问题,但是想用"yyyy-MM-dd" 转LocaDateTime 却出现了问题,所以通过hutool 工具里面的,String转成DateTime,然后再去转换成LocalDateTime就OK了。
public static LocalDateTime parseLocalDateTime(String dateStr) {
DateTime parse = DateUtil.parse(dateStr);
Instant instant = parse.toInstant();
ZoneId zoneId = ZoneId.systemDefault();
LocalDateTime localDateTime = instant.atZone(zoneId).toLocalDateTime();
System.out.println(localDateTime);
return localDateTime;
}
- 字符串(yyyy-MM-dd)转LocalDatetime(DateUtil 为hutool 工具包中的)
public static LocalDateTime parseLocalDateTime(String dateStr) {
DateTime parse = DateUtil.parse(dateStr);
Instant instant = parse.toInstant();
ZoneId zoneId = ZoneId.systemDefault();
LocalDateTime localDateTime = instant.atZone(zoneId).toLocalDateTime();
System.out.println(localDateTime);
return localDateTime;
}
4.Date 转 LocalDatetime
public static LocalDateTime parseDate(Date date){
Instant instant = date.toInstant();
ZoneId zoneId = ZoneId.systemDefault();
LocalDateTime localDateTime = instant.atZone(zoneId).toLocalDateTime();
return localDateTime;
}
5.字符串转LocalDateTime
DateTimeFormatter fmt = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss");
String dateStr = "2021-08-19 15:11:30";
LocalDateTime date2 = LocalDateTime.parse(dateStr, fmt);
System.out.println(date2);