import java.time.LocalDateTime;
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) {
		// Tests
		System.out.println(convertToTimezone("03/08/2010 20:19:00 PM", "Asia/Shanghai", "US/Central"));
		System.out.println(convertToTimezone("03/08/2010 20:19:00 PM", "Asia/Shanghai", "America/Mexico_City"));
	}

	static String convertToTimezone(String inputDate, String inputDateTimezone, String destinationDateTimezone) {
		DateTimeFormatter dtf = DateTimeFormatter.ofPattern("MM/dd/uuuu HH:mm:ss a", Locale.ENGLISH);
		LocalDateTime ldt = LocalDateTime.parse(inputDate, dtf);
		ZonedDateTime zdtInput = ldt.atZone(ZoneId.of(inputDateTimezone));
		ZonedDateTime zdtDestination = zdtInput.withZoneSameInstant(ZoneId.of(destinationDateTimezone));
		return zdtDestination.format(dtf);
	}
}