Como armazenar a Data de Nascimento de forma correta?

Pessoal, estou quebrando a cabeça um pouco pra armazenar datas. Já perguntei isso pra inúmeras pessoas e todo mundo me diz:

import java.util.Calendar;

public class Data_Calendar {    
    public static void main(String[] args) {
        Calendar c = Calendar.getInstance();
        System.out.println("Data e Hora atual: "+c.getTime());
    }
}

Mas o que eu quero não é a DATA ATUAL, eu quero perguntar e armazenar a data de nascimento do usuário… Saca? Meu professor comentou que eu teria de armazenar em variaveis (dia, mes, ano) e depois dar um set, tipo

Calendar c = Calendar.getIntance();

e depois

c.set(ano,mes,dia);

Mas ai entra minha questão… Como é que vou armazenar ano, mes e dia em variaveis diferentes sem fazer o usuario ter que digitar 3 vezes? Pq por essa linha de raciocinio vou ter que perguntar:

“qual seu dia de nascimento?” leia(anoNascimento)
“qual mes?” leia(mesNascimento)
“qual ano?” leia(anoNascimento)

E o ideal seria perguntar de uma vez “Que ano nasceu?” e o cara responder “17/09/1990” por exemplo, e armazenar numa variável e SÓ, simples… Só isso que eu quero, o mais normal possível, to de cara de não ter encontrado nada referente a isso na net, só encontro como mostrar a data atual… Será que ninguém armazena aniversário em Java? kkk

Enfim, se alguém puder me dar uma luz quanto a isso vou ficar muito grato!

Cara esse projeto escolar tá com quais framework? é Web, Swing? Se for Web, é em que ? JSP, JSF ?

Amigo, não cheguei nessa parte ainda na verdade, mas vai ser Swing. Eu preciso estudar isso e implementar um framework pra armazenar uma data?

@djdalg de inicio vc quer determinar uma data pro seu calendar.

public static void main(String[] args) {
        int ano = 1990;
        int mes = 04;
        int dia = 02;
        
        Calendar dtNasc = Calendar.getInstance();
        
        dtNasc.set(Calendar.DAY_OF_MONTH, dia);
        dtNasc.set(Calendar.MONTH, mes);
        dtNasc.set(Calendar.YEAR, ano);
        
//        ou set assim:
//        dtNasc.set(ano, mes, dia);
            
        
        System.out.println("Data Nascimento:"+dtNasc.get(Calendar.DAY_OF_MONTH)+"/"+dtNasc.get(Calendar.MONTH)+"/"+dtNasc.get(Calendar.YEAR));
        
    }

Quando for usar pra salvar no banco(que creio que será via PrepareStatement):

preparedStatement.setTimestamp(2, new Timestamp(dtNasc.getTimeInMillis()));
//o parametro 2 corresponde ao indice do campo na sintaxe sql passada pro preparestatement, pesquisa 'INSERT com preparestatement que veras
1 curtida