В коде имеется сервис, который разрешает/отклоняет HTTP запрос в зависимости от времени (до 11:00 разрешено, после - запрещено). На текущий момент реализовано крайне просто:
public Vote vote(Restaurant restaurant, User user) {
Vote voteFromRepo = voteRepository.findByUserIdAndDate(user.getId(), LocalDate.now());
if (voteFromRepo != null && LocalTime.now().isAfter(LocalTime.of(11, 0))) {
throw new VoteDenyException();
}
return voteRepository.save(new Vote(restaurant, user));
}
Как привязать проверку времени к часовому поясу пользователя, а не к системному времени?
Используйте LocalDateTime, там есть возможность задать TimeZone. В базе храните все даты в формате UTC, когда даты показываются пользователям отображаете им даты, приводя к их часовому поясу. В вашем случае в запросе отправляйте текущие дату,время и часовой пояс клиента.
Посмотреть как на клиенте получить дату и зону можно здесь https://stackoverflow.com/questions/1091372/getting-the-clients-timezone-offset-in-javascript
Основные этапы разработки сайта для стоматологической клиники
Продвижение своими сайтами как стратегия роста и независимости