import java.time.OffsetDateTime;
import java.time.ZoneOffset;
import java.time.format.DateTimeFormatter;
import java.util.Locale;

public class Main {
	public static void main(String[] args) {
		OffsetDateTime source = OffsetDateTime.parse("2021-08-21T17:36:51.000+00:00");
		OffsetDateTime target = source.withOffsetSameInstant(ZoneOffset.of("+01:00"));
		System.out.println(target);

		// Custom format
		DateTimeFormatter dtf = DateTimeFormatter.ofPattern("uuuu-MM-dd hh:mm a O", Locale.ENGLISH);
		String formatted = dtf.format(target);
		System.out.println(formatted);

		// Replace GMT with BST to get the required string
		formatted = formatted.replaceFirst("GMT([+\\-]\\d+)", "BST($1)");
		System.out.println(formatted);
	}
}