Согласно справочнику Google API тип DateTime
имеет метод getValue()
, который
Возвращает значение даты / времени, выраженное в виде количества миллисекунд.
начиная с эпохи Unix.
Чтобы получить java.util.Date
, мы можем использовать это long
значение:
Date date = new Date(items.get(0).getStart().getDateTime().getValue());
Но обратите внимание, что начиная с Java 8 существует API java.time. Чтобы получить LocalDateTime
, вы можете пойти так:
ZoneOffset offset = ZoneOffset.ofTotalSeconds(items.get(0).getStart().getDateTime().getTimeZoneShift() * 60);
ZoneId zone = ZoneId.ofOffset("UTC", offset);
Instant instant = date.toInstant();
LocalDateTime dateTime = LocalDateTime.ofInstant(instant, zone);
Для определения подходящего ZoneId
мы используем метод getTimeZoneShift()
, который
Возвращает смещение часового пояса от UTC в минутах или 0 только для даты
значение.
Поскольку ZoneId.ofOffset
принимает в качестве второго параметра значение в секундах, мы должны сначала преобразовать минуты, возвращенные на getTimeZoneShift()
, в секунды.