El del String se hace extrayendo dos substring, uno con la primera letra, otros con el resto y luego concatenandolos.
El de las fechas no lo tengo tan claro, supongo que habrá algún método de java para expresar las fechas en el formato deseado pero no te puedo ayudar mucho
//Primer ejercicio
String frase = "hola BUENOS DIAS";
String inicial = frase.substring(0,1).toUpperCase();
String resto = frase.substring(1).toLowerCase();
System.out.println(inicial+resto);
//Segundo
LocalDate date = LocalDate.parse("2011-08-18");
System.out.println("DIA: "+date.getDayOfMonth());
System.out.println("MES: "+date.getMonthValue());
System.out.println("AÑO: "+date.getYear());