Java Data Type How to - Convert Instant to LocalDateTime with Timezone








Question

We would like to know how to convert Instant to LocalDateTime with Timezone.

Answer

/*from  w  ww.ja  v  a 2s .c  om*/
import java.time.Instant;
import java.time.LocalDateTime;
import java.time.ZoneId;
import java.time.ZoneOffset;

public class Main {
  public static void main(String[] args) {
    Instant instant = Instant.now();
    LocalDateTime dateTimeFromInstant = LocalDateTime.ofInstant(instant, ZoneId.of("America/Los_Angeles"));
    Instant instantFromDateTime = LocalDateTime.now().toInstant(ZoneOffset.ofHours(-2));
    
    System.out.println(dateTimeFromInstant);
    
    System.out.println(instantFromDateTime);
  }
}

The code above generates the following result.