Ну не говорите «Я хочу, чтобы это использовало текущее время»! Это то, что это делает:
OffsetTime.now(ZoneOffset.UTC)
Если вы просто хотите OffsetDateTime
от LocalDate
, обеспечивая смещение нулевой точки и в полночь, вы можете использовать:
OffsetDateTime myOffsetDate = myLocalDate
.atTime(LocalTime.MIDNIGHT)
.atOffset(ZoneOffset.UTC);
Или, если вы предпочитаете:
OffsetDateTime myOffsetDate = myLocalDate
.atTime(OffsetTime.of(LocalTime.MIDNIGHT, ZoneOffset.UTC));
(Лично я предпочитаю первую версию, я сам)
Обратите внимание, что это просто дает вам право OffsetDateTime
. Если вы хотите форматировать, что с миллисекундах и секундах, вы должны сделать это явно:
DateTimeFormatter formatter = DateTimeFormatter
.ofPattern("yyyy-MM-dd'T'HH:mm:ss.SSSX");
System.out.println(myOffsetDate.format(formatter));
Как было отмечено в комментариях, если вы найдете с ZonedDateTime
вместо OffsetDateTime
, вы можете использовать
ZonedDateTime myOffsetDate = myLocalDate.atStartOfDay(ZoneOffset.UTC);
Вы имеете в виду, не нужно время, вам просто нужно выводить 'T00: 00: 00.000Z'? – Alexey
Я также пытаюсь вывести дату. – Jon
Я уже понял это) – Alexey