Получить записи из диапазона дат - PullRequest
0 голосов
/ 29 мая 2019

Это моя модель:

public class FlightSchedule {

    @Id
    @GeneratedValue(strategy = GenerationType.IDENTITY)
    private Long id;

    @Column(name = "takeoff_date")
    private LocalDateTime takeoffDate;

    @ManyToOne
    @JsonIgnoreProperties("airportTakeoff")
    private Airports airportTakeoff;

    @ManyToOne
    @JsonIgnoreProperties("airportArrival")
    private Airports airportArrival;

}

Это мой репозиторий:

public List<FlightSchedule> findByAirportTakeoff_idAndAirportArrival_idAndTakeoffDateGreaterThanEqualAndTakeoffDateLessThan(
        String airportTakeoff, String airportArrival, LocalDateTime arrivalDate, LocalDateTime arrivalDate2);

А это мой сервис:

LocalDateTime takeoffLocalDate =
            Instant.ofEpochMilli(takeoffDate).atZone(ZoneId.systemDefault()).toLocalDateTime();
    LocalDateTime takeoffLocalDate2 =
            Instant.ofEpochMilli(takeoffDate).atZone(ZoneId.systemDefault()).toLocalDateTime().plusDays(1);


    return flightScheduleRepository.findByAirportTakeoff_idAndAirportArrival_idAndTakeoffDateGreaterThanEqualAndTakeoffDateLessThan(
            airportTakeoff, airportArrival, takeoffLocalDate, takeoffLocalDate2)
            .stream().map(flightScheduleMapper::toDto)
            .collect(Collectors.toCollection(LinkedList::new));

Это мои записи:

1   2019-05-28 17:00:00 TGU   MAD

6   2019-05-28 23:00:00 TGU   MAD

Однако, когда сделать запрос с помощью:

/flight-schedules/optional/1558994400000/TGU/MAD

1558994400000 = 28 May 2019

Я должен получить оба взлета, но я получу первый. Я заметил, что я не получаю рейсы после 21:00 часов дня. Есть идеи?

1 Ответ

0 голосов
/ 29 мая 2019
LocalDateTime.of(2019,5,28,0,0,0).toInstant(ZoneOffset.UTC).toEpochMilli();

Это дает мне длинное значение 1559001600000, которое отличается от вашего миллис. Таким образом, проблема, вероятно, связана с вашим значением в миллис, оно отличается от часового пояса UTC на 3 часа.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...