如何获取一年的开始日期和结束日期?java.time
我必须使用Java类来解决这个问题(它与我无法控制的东西接口)。Date
如何获取一年的开始日期和结束日期,然后循环访问每个日期?
我必须使用Java类来解决这个问题(它与我无法控制的东西接口)。Date
如何获取一年的开始日期和结束日期,然后循环访问每个日期?
使用 Java 8 及更高版本中内置的 java.time
库。特别是 LocalDate
和 TemporalAdjusters
类。
import java.time.LocalDate
import static java.time.temporal.TemporalAdjusters.firstDayOfYear
import static java.time.temporal.TemporalAdjusters.lastDayOfYear
LocalDate now = LocalDate.now(); // 2015-11-23
LocalDate firstDay = now.with(firstDayOfYear()); // 2015-01-01
LocalDate lastDay = now.with(lastDayOfYear()); // 2015-12-31
如果您需要添加时间信息,则可以使用任何可用的转换,例如LocalDate
LocalDateTime
lastDay.atStartOfDay(); // 2015-12-31T00:00
Calendar cal = Calendar.getInstance();
cal.set(Calendar.YEAR, 2014);
cal.set(Calendar.DAY_OF_YEAR, 1);
Date start = cal.getTime();
//set date to last day of 2014
cal.set(Calendar.YEAR, 2014);
cal.set(Calendar.MONTH, 11); // 11 = december
cal.set(Calendar.DAY_OF_MONTH, 31); // new years eve
Date end = cal.getTime();
//Iterate through the two dates
GregorianCalendar gcal = new GregorianCalendar();
gcal.setTime(start);
while (gcal.getTime().before(end)) {
gcal.add(Calendar.DAY_OF_YEAR, 1);
//Do Something ...
}