import java.time.Instant;
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) {
        String requestTime = "04:30 PM, Sat 5/12/2018";
        DateTimeFormatter dtf = DateTimeFormatter.ofPattern("h:m a, EEE M/d/u", Locale.ENGLISH);

        // Parse the date-time string to LocalDateTime as it does not have time-zone
        LocalDateTime ldt = LocalDateTime.parse(requestTime, dtf);

        // Convert the LocalDateTime into ZonedDateTime of the given time-zone
        ZonedDateTime zdt = ldt.atZone(ZoneId.of("America/Toronto"));

        // Convert the ZonedDateTime into Instant
        Instant instant = zdt.toInstant();
        System.out.println(instant);
    }
}