Как получить начало дня любой эпохи в скале?

Например:

 epochtime = 1450575628  [Sun, 20 Dec 2015 01:40:28]

мой вывод должен быть: 1450569600 [Sun, 20 Dec 2015 00:00:00]

Как написать скрипт scala, работающий на любое случайное время?

2 ответа

java.time

С использованием java.time фреймворк, встроенный в Java 8 и более поздние версии, доступный в Scala.

import java.time._

val dateFromEpoch = LocalDateTime
  .ofInstant(Instant.ofEpochSecond(1450575628), ZoneId.of("UTC"))
  .`with`(LocalTime.MIN)

dateFromEpoch.toEpochSecond(ZoneOffset.UTC) # Long = 1450569600

Вы можете сделать следующее:

// construct a new Date object from the given time
Date date = new Date(epochtime * 1000);

// get the calendar and set its time
Calendar cal = Calendar.getInstance();
cal.setTime(date);

// reset hours to zero (do the same for minutes and seconds)
cal.set(Calendar.HOUR, 0);

// construct Date object after modifications
Date newDate = cal.getTime();
System.out.println(newDate);

// now you can get epoch time from the last object
epochtime = newDate.getTime();
Другие вопросы по тегам