Я хочу вернуть текущее время (Instant) в определенном TimeZone
: Я пробовал со следующими фрагментами кода:
Instant now2 = Instant.now();
ZonedDateTime zdt = ZonedDateTime.ofInstant(now2,
ZoneId.of("Asia/Singapore"));
System.out.println("Singapore"+ zdt.toInstant());
с этим:
Instant nowUtc = Instant.now();
ZoneId asiaSingapore = ZoneId.of("Asia/Singapore");
ZonedDateTime nowAsiaSingapore = ZonedDateTime.ofInstant(nowUtc, asiaSingapore);
или также:
Instant timeStamp= Instant.now();
ZonedDateTime timestampAtGMTPlus1= timeStamp.atZone(ZoneId.of("GMT+02:00"));
Instant nowGMT = timestampAtGMTPlus1.toInstant();
System.out.println("In 'GMT+01:00' Time Zone:"+ nowGMT);
Но, похоже, ни один из них не показывает время, отличное от текущего (Instant.now()
) Есть ли предварительная конфигурация для изменения часового пояса? Что не так с моим Instant Class (Java 8)?
UPDATE: во всех трех случаях результат 2020-08-04T16:08:59.062Z
Для Мэтью: ваше решение выводит: 23:08:59.063594500
, который является нет информации для меня.