java.time.ZoneId replace java.util.TimeZone
public void test() {
//{area}/{city}
ZoneId romeZone = ZoneId.of("Europe/Rome");
ZoneId zoneId = TimeZone.getDefault().toZoneId();
//applying a time zone to a point in time
LocalDate date = LocalDate.of(2014, Month.MARCH, 18);
ZonedDateTime zdt1 = date.atStartOfDay(romeZone);
LocalDateTime dateTime = LocalDateTime.of(2014, Month.MARCH, 18, 13, 45);
ZonedDateTime zdt2 = dateTime.atZone(romeZone);
Instant instant = Instant.now();
ZonedDateTime zdt3 = instant.atZone(romeZone);
System.out.println("date:" + date);
System.out.println(zdt1 + "----");
System.out.println("dateTime:" + dateTime);
System.out.println(zdt2 + "----");
System.out.println("instant" + instant);
System.out.println(zdt3 + "----");
//covert a instant to localDateTIme
Instant instant1 = Instant.now();
LocalDateTime timeFromInstant = LocalDateTime.ofInstant(instant1, romeZone);
//convert LocalDateTime to Instant
LocalDateTime dateTime1 = LocalDateTime.of(2018, Month.JULY, 15, 13, 55);
ZoneOffset chinaOffset = ZoneOffset.of("+08:00:00");
Instant instantFromDateTime = dateTime1.toInstant(chinaOffset);
}