import java.time.Year;
import java.time.ZonedDateTime;
import java.time.format.DateTimeFormatter;
import java.time.format.DateTimeFormatterBuilder;
import java.time.temporal.ChronoField;
import java.util.Locale;

public class Main {
    public static void main(String[] args) {
        DateTimeFormatter dtf = new DateTimeFormatterBuilder()
                .optionalStart()
                .appendPattern("EEEE, dd MMM uuuu HH:mm:ss '('VV')'")
                .optionalEnd()
                .optionalStart()
                .parseDefaulting(ChronoField.YEAR, Year.now().getValue())
                .appendPattern("MM/dd '('EEE')', HH:mm VV")
                .optionalEnd()
                .toFormatter(Locale.ENGLISH);

        ZonedDateTime zdt1 = ZonedDateTime.parse("Wednesday, 30 Nov 2022 10:30:00 (UTC)", dtf);
        ZonedDateTime zdt2 = ZonedDateTime.parse("12/08 (Thu), 10:00 GMT", dtf);

        System.out.println(zdt1);
        System.out.println(zdt2);

        // Formatted output
        DateTimeFormatter formatter = DateTimeFormatter.ofPattern("uuuu/MM/dd HH:mm:ss z", Locale.ENGLISH);
        System.out.println(zdt1.format(formatter));
        System.out.println(zdt2.format(formatter));
    }
}