I have to use the Java Date
class for this problem (it interfaces with something out of my control).
How do I get the start and end date of a year and then iterate through each date?
Using java.time
library built into Java 8 and later. Specifically the LocalDate
and TemporalAdjusters
classes.
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
If you need to add time information, you may use any available LocalDate
to LocalDateTime
conversion like
lastDay.atStartOfDay(); // 2015-12-31T00:00