import java.time.DayOfWeek;
import java.time.LocalDate;
import java.time.format.TextStyle;
import java.util.Arrays;
import java.util.List;
import java.util.Locale;
import java.util.stream.Stream;

public class Main {
	public static void main(String[] args) {
		Stream.of(
				"2021-04-01", 
				"2021-05-03", 
				"2020-06-17"
		).forEach(s -> 
			System.out.printf(
				"%s, %s, %s%n", 
				LocalDate.parse(s).getDayOfWeek(),
				LocalDate.parse(s).getDayOfWeek().getDisplayName(TextStyle.FULL, Locale.ENGLISH),
				LocalDate.parse(s).getDayOfWeek().getDisplayName(TextStyle.SHORT, Locale.ENGLISH)
			)
		);
		
		System.out.println("+-+-+-+-+-+-+-+-+-+-+-+-+");
		
		// Non-Stream solution:
		// Also, showing only one style without using String#format i.e. %s
		List<String> strDateList = Arrays.asList(
										"2021-04-01", 
										"2021-05-03", 
										"2020-06-17"
									);
		
		for(String s: strDateList) {
			LocalDate date = LocalDate.parse(s);
			DayOfWeek dow = date.getDayOfWeek();
			System.out.println(dow.getDisplayName(TextStyle.FULL, Locale.ENGLISH));
		}
	}
}