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

public class Main {
	public static void main(String[] args) {
		String strDateTime = "Mon Aug 24 12:36:46 GMT+1000 2009";
		DateTimeFormatter parser = DateTimeFormatter.ofPattern("E MMM d H:m:s VVZ u", Locale.ENGLISH);
		OffsetDateTime odt = OffsetDateTime.parse(strDateTime, parser);
		System.out.println(odt);

		// Custom fromat
		DateTimeFormatter formatter = DateTimeFormatter.ofPattern("uuuu-MM-dd'T'HH:mm:ss.SSSXXX", Locale.ENGLISH);
		System.out.println(formatter.format(odt));
	}
}