Я чувствую, что вы должны использовать Instant
s.
Я действительно чувствовал, что использование LocalDate было бы уместно, потому что мы просто хотим выставить счет в какой-то момент в течение этого дня.
Ну нет. Вы действительно заботитесь о времени, которое вы выставляете, потому что ваша база данных заботится о времени. Время выставления счета хранится как 00:00 UTC. Поскольку это момент времени, я думаю, что Instant
будет наиболее подходящим выбором здесь. Вы также можете использовать ZonedDateTime
, но, учитывая, что вы, вероятно, получаете java.sql.Date
из своей базы данных, в которой уже есть метод toInstant
, использование Instant
s более удобно.
Вы можете получить мгновение из года, месяца, дня следующим образом:
LocalDate ld = LocalDate.of(2019, 7, 8);
Instant i = ld.atStartOfDay(ZoneId.of("America/Los_Angeles")).toInstant();
America/Los_Angeles
является PST.