Как получить начало дня любой эпохи в скале?
Например:
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();