import java.time.Instant;
import java.time.LocalDate;
import java.time.LocalDateTime;
import java.time.OffsetDateTime;
import java.time.ZoneId;
import java.time.ZonedDateTime;
import java.time.format.DateTimeFormatter;
import java.util.Locale;

public class Main {
	public static void main(String[] args) {
		String strDate = "01/01/2100";
		DateTimeFormatter dtfInput = DateTimeFormatter.ofPattern("d/M/u", Locale.ENGLISH);
		
		ZonedDateTime zdt = LocalDate.parse(strDate, dtfInput)
								.atStartOfDay(ZoneId.of("Etc/UTC"));

		// Default format
		System.out.println(zdt);

		// Getting and displaying LocalDateTime
		LocalDateTime ldt = zdt.toLocalDateTime();
		System.out.println(ldt);

		// A custom format
		DateTimeFormatter dtfOutput = DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss", Locale.ENGLISH);
		// Alternatively dtfOutput.format(ldt);
		String formatted = dtfOutput.format(zdt);
		System.out.println(formatted);
		
		//Converting to some other types
		OffsetDateTime odt = zdt.toOffsetDateTime();
		Instant instant = zdt.toInstant();
		System.out.println(odt);
		System.out.println(instant);
	}
}