Методы часового пояса не изменяют текущее мгновенное время - PullRequest
0 голосов
/ 04 августа 2020

Я хочу вернуть текущее время (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, который является нет информации для меня.

Ответы [ 2 ]

1 голос
/ 04 августа 2020

Мгновенно всегда UT C. Класс, который вы ищете, называется LocalTime:

Instant now = Instant.now();
ZonedDateTime zonedDateTime = ZonedDateTime.ofInstant(now, ZoneId.of("Asia/Singapore"));
System.out.println("The time in Singapore is: " + zonedDateTime.toLocalDateTime());
zonedDateTime = ZonedDateTime.ofInstant(now, ZoneId.of("Europe/London"));
System.out.println("The time in London is: " + zonedDateTime.toLocalDateTime());

Дает:

The time in Singapore is: 2020-08-04T23:21:00.238406800
The time in London is: 2020-08-04T16:21:00.238406800
0 голосов
/ 04 августа 2020

Можете попробовать вот так

ZoneId asiaSingapore = ZoneId.of("Asia/Singapore");
Instant inst = LocalDateTime.now(asiaSingapore).toInstant(ZoneOffset.UTC);  
System.out.println(inst); 


         
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...