Gente, estou com dificuldade no desenvolvimento desde código em Java. Alguém poderia me ajudar, por favor.
Como você tentou fazer?
Crie uma string dataDigitada e pegue o que o usuário digitar.
Depois mostre na tela uma pergunta “qual formato de saída desejado?”
Pegue a resposta e jogue no switch.
Para pegar o formato desejado, é só usar a função substring na string dataDigitada.
Tenta aí e posta aqui o resultado.

@Fefo80
Esse é meu primeiro semestre e já estou arrependida de ter entrado no curso. Além disso, as aulas são online, ai que eu não entendo mesmo, e pra trocar de curso tenho que cursar esse semestre. De verdade, não sei por onde começar. 
Vamos começar pelo básico: o que você sabe?
Vamos construir a partir do que você sabe, fique tranquilo.
import java.util.*;
public class MinhaData
{
private String nome;
private Data dataDelancamento;
public void setLancamento (Date data)
{
this.lancamento = data;
}
SimpleDateFormat formato = new Simple
DateFormat (“dd/mm/yyyy”);
Date data = formato.parse(“23/11/2020)”;System.out.println(formato.format(data));
}
Comecei assim, mas não sei se é. @Fefo80
Existem várias formas de fazer. Vou postar abaixo uma, e você tenta completar o código, combinado?
E depois tente fazer com essa forma do SimpleDateFormat etc.
Ok?
import java.util.Scanner;
public class MinhaData {
public static void main(String[] args) {
	Scanner entrada = new Scanner(System.in);
	String data;
	
	do {
	System.out.print("Digite a data, no formato dd/mm/aaaa: ");
	data = entrada.nextLine();
	
	if (data.length() != 10) {
		System.out.println("\n\nData digitada no formato errado! Tente de novo\n\n");
	}
	} while (data.length() != 10);
	System.out.println("\nEscolha o formato de saída!");
	System.out.println("Para DD/MM/AA digite 1");
	System.out.println("Para MM/AAAA digite 2");
	System.out.println("MM/DD/AAAA");
	System.out.println("E para DD/MES_POR_EXTENSO/AAAA digite 4");
	System.out.print("\nQual sua escolha? ");
	
	int escolha = Integer.parseInt(entrada.nextLine());
	
	while (escolha < 1 && escolha > 4) {
		System.out.println("\nValor inválido, tente novamente!\n");
		System.out.println("Escolha o formato de saída:");
		System.out.println("Para DD/MM/AA digite 1");
		System.out.println("Para MM/AAAA digite 2");
		System.out.println("MM/DD/AAAA");
		System.out.println("E para DD/MES_POR_EXTENSO/AAAA digite 4");
		System.out.print("\nQual sua escolha? ");
		
		escolha = Integer.parseInt(entrada.nextLine());
	}
	
	switch (escolha) {
	case 1:
		System.out.print("\nResultado: " + data.substring(0, 2) + "/" + data.substring(3, 5) + "/" + data.substring(8, 10) + "\n");
		break;
	case 2:
		break;
	case 3:
		break;
	case 4:
		break;
	default:
		break;
	}	
	entrada.close();
}
}Ok @Fefo80 Muito obrigado, me ajudou muito com seus conhecimentos, quem entende é outro nivel. 



Muito Obrigado mesmo, vou tentar fazer de outra forma, pode deixar.
Depois posta aí como ficou.
Seja bem vinda ao fórum! Um lugar de conhecimento e interação, com pessoas sempre com a intenção de ajudar quem está disposto.
E, quando for mais experiente, por favor sinta-se convidada a retornar ao fórum para ajudar aos novatos.
Oi, @Fefo80 bom dia.
Eu estava tentando modificar o código, porém não conseguir muito. Como eu disse estou iniciando e estou com algumas dificuldades.
Na opção de selecionar um formato, apenas o 1 rodava, modifiquei e conseguir fazer o 2 funcionar, porem não conseguir mais, dava erros constantes. Na escolha 4, o resultado sai: 10/Wed Mar 24 + as horas + GMT-03 2021/20.
Tem que ficar 31/outubro/2020
Eu modifiquei a parte do switch. Porem começa a da erros tbm.
import java.util.Scanner;
import java.util.Calendar;
public class MinhaData {
public static void main(String[] args) {
Scanner entrada = new Scanner(System.in);
String data;
do {
System.out.print("Digite a data, no formato DD/MM/AAAA: ");
data = entrada.nextLine();
if (data.length() != 10) {
System.out.println("\n\nData digitada no formato errado! Tente de novo\n\n");
}
} while (data.length() != 10);
System.out.println("\nEscolha o formato de saída:");
System.out.println(“Para DD/MM/AA, digite 1”);
System.out.println(“Para MM/AAAA, digite 2”);
System.out.println(“Para MM/DD/AAAA, digite 3”);
System.out.println(“E para DD/MES_POR_EXTENSO/AAAA, digite 4”);
System.out.print("\nQual sua escolha? ");
int escolha = Integer.parseInt(entrada.nextLine());
while (escolha < 1 && escolha > 4) {
System.out.println("\nValor inválido, tente novamente!\n");
System.out.println(“Escolha o formato de saída:”);
System.out.println(“Para DD/MM/AA, digite 1”);
System.out.println(“Para MM/AAAA, digite 2”);
System.out.println(“MM/DD/AAAA, digite 3”);
System.out.println(“E para DD/MES_POR_EXTENSO/AAAA, digite 4”);
System.out.print("\nQual sua escolha? ");
escolha = Integer.parseInt(entrada.nextLine());
}
switch (escolha) {
case 1:
System.out.print("\nResultado: " + data.substring(0, 2) + “/” + data.substring(3, 5) + “/” + data.substring(8, 10) + “\n”);
break;
case 2:
System.out.print("\nResultado: " + data.substring(0, 2) + “/” + data.substring(8, 10) + “\n”);
break;
case 3:
System.out.print("\nResultado: " + data.substring(3, 5) + “/” + data.substring(0, 2) + “/” + data.substring(8, 10) + “\n”);
break;
case 4:
System.out.print("\nResultado: " + data.substring(0, 2) + “/” + data.substring(0, 2) + “/” + data.substring(8, 10) + “\n”);
break;
default:
break;
}
entrada.close();
}
}
@Halsey qual erro que deu?
Ah… lembra sempre de formatar teu código, quando postar aqui.
Olhando a documentação da classe Calendar que você chamou - https://docs.oracle.com/javase/7/docs/api/java/util/Calendar.html - veremos que ela pode exportar nos seguintes formatos:
For the date fields:
YEAR + MONTH + DAY_OF_MONTH YEAR + MONTH + WEEK_OF_MONTH + DAY_OF_WEEK YEAR + MONTH + DAY_OF_WEEK_IN_MONTH + DAY_OF_WEEK YEAR + DAY_OF_YEAR YEAR + DAY_OF_WEEK + WEEK_OF_YEARFor the time of day fields:
HOUR_OF_DAY AM_PM + HOUR
Se quiser ler um pouco mais sobre o Calendar, olha aqui: https://www.javatpoint.com/java-util-calendar
No Devmedia explica como você pode jogar em português: https://www.devmedia.com.br/trabalhando-com-as-classes-date-calendar-e-simpledateformat-em-java/27401
Um plano B, se você não conseguir fazer com os links acima, você pode fazer com SWITCH ou com IF, testando o mês e colocando o nome. Não é a melhor forma, mas funciona.
Se não conseguir fazer, me avisa.
Vou ler esses links e tentar fazer de novo.
Qualquer coisa eu volto aqui e lhe aviso se conseguir.
Se a ideia é validar datas, não use substring, pois aí você só estará pegando pedaços da string, sem saber se de fato foi digitado uma data.
Por exemplo, se eu digitar abcdefghij, e depois escolher a opção 3, o resultado foi de/ab/ij.
Você tinha usado SimpleDateFormat (que eu só recomendaria se estiver usando Java <= 7, pois a partir do Java 8 tem um jeito melhor), então estava no caminho certo. De qualquer forma, segue abaixo soluções com ambas.
A ideia é usar um formatador/parser para validar a entrada, e outro para formatar a saída.
Para Java >= 8, prefira usar a API java.time. No caso, como a data só tem dia, mês e ano, a melhor opção é a classe java.time.LocalDate:
Scanner entrada = new Scanner(System.in);
DateTimeFormatter formatoEntrada = DateTimeFormatter.ofPattern("dd/MM/uuuu").withResolverStyle(ResolverStyle.STRICT);
LocalDate data;
while (true) {
    System.out.print("Digite a data, no formato DD/MM/AAAA: ");
    try {
        data = LocalDate.parse(entrada.nextLine(), formatoEntrada);
        break; // se a data for válida, sai do while
    } catch (DateTimeParseException e) {
        System.out.println("Data no formato inválido, deve ser DD/MM/AAAA");
    }
}
// formatos válidos
List<DateTimeFormatter> formatos = new ArrayList<>();
formatos.add(DateTimeFormatter.ofPattern("dd/MM/uu"));
formatos.add(DateTimeFormatter.ofPattern("MM/uuuu"));
formatos.add(DateTimeFormatter.ofPattern("MM/dd/uuuu"));
formatos.add(DateTimeFormatter.ofPattern("dd/MMMM/uuuu", new Locale("pt", "BR")));
int escolha;
while (true) {
    System.out.println("Escolha o formato de saída:");
    System.out.println("Para DD/MM/AA, digite 1");
    System.out.println("Para MM/AAAA, digite 2");
    System.out.println("MM/DD/AAAA, digite 3");
    System.out.println("E para DD/MES_POR_EXTENSO/AAAA, digite 4");
    System.out.print("\nQual sua escolha? ");
    try {
        escolha = Integer.parseInt(entrada.nextLine());
        if (1 <= escolha && escolha <= 4) {
            DateTimeFormatter formatoSaida = formatos.get(escolha - 1);
            System.out.println(formatoSaida.format(data));
            break; // sai do while
        } else {
            System.out.println("Formato inválido");
        }
    } catch (NumberFormatException e) {
        System.out.println("Você não digitou um número");
    }
}
// não precisa fechar o System.in
Usei o ResolverStyle.STRICT porque assim ele não deixa digitar datas como 31 de fevereiro (sem isso, esta data seria ajustada para dia 28).
Para o nome do mês usei o Locale correspondente ao português do Brasil, assim o DateTimeFormatter já pega os nomes corretos.
Para código novo com as versões mais recentes da linguagem (na verdade qualquer uma acima do Java 8), eu recomendo aprender o java.time, que é a API mais moderna e que corrige vários problemas de Date, Calendar e SimpleDateFormat.
Mas se estiver usando Java <= 7, pode fazer assim:
Scanner entrada = new Scanner(System.in);
SimpleDateFormat formatoEntrada = new SimpleDateFormat("dd/MM/yyyy");
formatoEntrada.setLenient(false); // para não aceitar datas inválidas
Date data;
while (true) {
    System.out.print("Digite a data, no formato DD/MM/AAAA: ");
    try {
        data = formatoEntrada.parse(entrada.nextLine());
        break; // se a data for válida, sai do while
    } catch (ParseException e) {
        e.printStackTrace();
        System.out.println("Data no formato inválido, deve ser DD/MM/AAAA" );
    }
}
// formatos válidos
List<SimpleDateFormat> formatos = new ArrayList<>();
formatos.add(new SimpleDateFormat("dd/MM/yy"));
formatos.add(new SimpleDateFormat("MM/yyyy"));
formatos.add(new SimpleDateFormat("MM/dd/yyyy"));
formatos.add(new SimpleDateFormat("dd/MMMM/yyyy", new Locale("pt", "BR")));
int escolha;
while (true) {
    System.out.println("Escolha o formato de saída:");
    System.out.println("Para DD/MM/AA, digite 1");
    System.out.println("Para MM/AAAA, digite 2");
    System.out.println("MM/DD/AAAA, digite 3");
    System.out.println("E para DD/MES_POR_EXTENSO/AAAA, digite 4");
    System.out.print("\nQual sua escolha? ");
    try {
        escolha = Integer.parseInt(entrada.nextLine());
        if (1 <= escolha && escolha <= 4) {
            SimpleDateFormat formatoSaida = formatos.get(escolha - 1);
            System.out.println(formatoSaida.format(data));
            break; // sai do while
        } else {
            System.out.println("Formato inválido");
        }
    } catch (NumberFormatException e) {
        System.out.println("Você não digitou um número");
    }
}
@Fefo80 boa noite, não conseguir fazer.
Tentei modificar pra rodar todas as opções de uma vez, e não conseguir tbm.
Boa noite. E aí, deu certo?