Как конвертировать Long EpochDays в LocalDate?

192
11 апреля 2018, 09:55

Для расчётов мне требовалось перевести LocalDate в epochDays, теперь надо обратно. Пока сделал вот такую конструкцию:

private static final Long DAY_IN_MILLISECONDS = 86400000L;
LocalDate actualDAte = Instant.ofEpochMilli((date * DAY_IN_MILLISECONDS) - DAY_IN_MILLISECONDS)
                .atZone(ZoneId.systemDefault()).toLocalDate();

Не самый лучший вариант, мне кажется, к тому же, он выдаёт неправильные данные. Есть ли другой способ перевести дни в дату?

Answer 1

Вот так можно, без лишних кастомных телодвижений, в которых можно накосячить лишний раз:

Instant.EPOCH.plus(epochDay, ChronoUnit.DAYS)
    .atZone(ZoneId.systemDefault())
    .toLocalDate();
    LocalDate d = LocalDate.now();
    System.out.println(d);
    long epochDay = d.toEpochDay();
    d = Instant.EPOCH.plus(epochDay, ChronoUnit.DAYS).atZone(ZoneId.systemDefault()).toLocalDate();;
    System.out.println(d);

2018-04-10

2018-04-10

READ ALSO
Обновить Last_insert_id() если уже есть поле

Обновить Last_insert_id() если уже есть поле

Нужно проверить есть ли в таблице поле с заданной датой,если нет,то создать, если есть - положить в last_insert_id() id существующего поляПытался сделать...

197
Laravel удаленное подключение к БД

Laravel удаленное подключение к БД

При подключении к удаленной БД возникает ошибка:

192