Java 8
以LocalDateTime#parse 开头,将String 值解析为LocalDateTime
然后使用循环,使用 plusMinutes 递增“开始”LocalDateTime 的值,直到值为 equal 或 isAfter,然后是“结束”LocalDateTime
String startAt = "15-05-15 02:00:AM";
String endAt = "15-05-15 06:00:AM";
String format = "dd-MM-yy hh:mm':'a";
LocalDateTime startTime = LocalDateTime.parse(startAt, DateTimeFormatter.ofPattern(format));
LocalDateTime endTime = LocalDateTime.parse(endAt, DateTimeFormatter.ofPattern(format));
while (endTime.isAfter(startTime)) {
LocalDateTime next = startTime.plusMinutes(60);
System.out.println("StartTime : " + startTime.format(DateTimeFormatter.ofPattern(format)) + "; End Time : " + next.format(DateTimeFormatter.ofPattern(format)));
startTime = next;
}
打印出来的...
StartTime : 15-05-15 02:00:AM; End Time : 15-05-15 03:00:AM
StartTime : 15-05-15 03:00:AM; End Time : 15-05-15 04:00:AM
StartTime : 15-05-15 04:00:AM; End Time : 15-05-15 05:00:AM
StartTime : 15-05-15 05:00:AM; End Time : 15-05-15 06:00:AM
Joda-Time(其他所有人)
String startAt = "15-05-15 02:00:AM";
String endAt = "15-05-15 06:00:AM";
String format = "dd-MM-yy hh:mm':'a";
DateTimeFormatter formatter = DateTimeFormat.forPattern(format);
LocalDateTime startTime = formatter.parseLocalDateTime(startAt);
LocalDateTime endTime = formatter.parseLocalDateTime(endAt);
while (endTime.isAfter(startTime)) {
LocalDateTime next = startTime.plusMinutes(60);
System.out.println("StartTime : " + formatter.print(startTime) + "; End Time : " + formatter.print(next));
startTime = next;
}
打印出来的
StartTime : 15-05-15 02:00:AM; End Time : 15-05-15 03:00:AM
StartTime : 15-05-15 03:00:AM; End Time : 15-05-15 04:00:AM
StartTime : 15-05-15 04:00:AM; End Time : 15-05-15 05:00:AM
StartTime : 15-05-15 05:00:AM; End Time : 15-05-15 06:00:AM
“我不允许使用第三方库”(不推荐的方法)
try {
String startAt = "15-05-15 02:00:AM";
String endAt = "15-05-15 06:00:AM";
String format = "dd-MM-yy hh:mm':'a";
SimpleDateFormat sdf = new SimpleDateFormat(format);
Date startDate = sdf.parse(startAt);
Date endDate = sdf.parse(endAt);
Calendar startCal = Calendar.getInstance();
startCal.setTime(startDate);
Calendar endCal = Calendar.getInstance();
endCal.setTime(endDate);
while (endCal.after(startCal)) {
String start = sdf.format(startCal.getTime());
startCal.add(Calendar.MINUTE, 60);
String to = sdf.format(startCal.getTime());
System.out.println("Start Time : " + start + "; End Time : " + to);
}
} catch (ParseException exp) {
exp.printStackTrace();
}
哪些打印...
Start Time : 15-05-15 02:00:AM; End Time : 15-05-15 03:00:AM
Start Time : 15-05-15 03:00:AM; End Time : 15-05-15 04:00:AM
Start Time : 15-05-15 04:00:AM; End Time : 15-05-15 05:00:AM
Start Time : 15-05-15 05:00:AM; End Time : 15-05-15 06:00:AM