Trabalhando com Date() da Classe java.sql.Date

Estou criando um sistema para registrar ponto dos colaboradores da loja que trabalho.
Estava atribuindo os campos de data e hora a variáveis do tipo String e salvando em uma planilha excel, contudo estou adaptando agora para o banco de dados e precisei mudar essas variáveis de data.

Usei o método Date(), porém tenho tido problemas com o retorno de valor que ele traz.

Abaixo o código:

int dia = Integer.parseInt(Util.pegaData("dd"));
int mes = Integer.parseInt(Util.pegaData("MM"));
int ano = Integer.parseInt(Util.pegaData("yyyy"));
int hora = Integer.parseInt(Util.pegaData("HH"));
int min = Integer.parseInt(Util.pegaData("mm"));
int seg = Integer.parseInt(Util.pegaData("ss"));
			
			
@SuppressWarnings("deprecation")
Date data = new Date(ano, mes, dia);
System.out.println("dia: " + dia + ", Mês:  "+ mes + ", Ano: " + ano + ", Ou data completa: " + data);
				
@SuppressWarnings("deprecation")
Time horario = new Time(hora, min, seg);
System.out.println("Hora: " + hora + ", Minuto:  "+ min + ", Segundo: " + seg + ", Ou Hora completa: " + horario);

Método para pegar data:

public static String pegaData(String format) {
	String nome;
	
	DateFormat dateFormat = new SimpleDateFormat(format);
	Date date = new Date();
	
	nome =  dateFormat.format(date);
	return nome;
}

O resultado do meus sysout é:

dia: 17, Mês: 10, Ano: 2019, Ou data completa: 3919-11-17
Hora: 9, Minuto: 45, Segundo: 31, Ou Hora completa: 09:45:31

Já tentei inverter as posições da data para dia, mês, ano e ano, mês, dia.

Certo, você indicou os retornos dados pelo construtor, mas não indicou qual é o retorno que tu queres. Seria dd/MM/yyyy?

Obs.1: Date() é o construtor da classe Date e não um método. Observe que está grafado em letra maiúscula e com o mesmo nome da classe.

Obs.2: java.sql.Date não é uma biblioteca, mas a classe totalmente qualificado, ou seja, informando o pacote a qual pertence.

No caso os meus sysout, são ainda a nível de teste. Como preciso gravar a data no BD, preciso que meu objeto data, retorne o hória consistente, de acordo com as variáveis dia, mês e ano.

dia: 17, Mês: 10, Ano: 2019, Ou data completa: 2019-10-17
Hora: 9, Minuto: 45, Segundo: 31, Ou Hora completa: 09:45:31

A sua String format, está vindo como? Assim: 17/10/2019? O construtor java.sql.Date(int year, int month, int day) está depreciado (como tu pode confirmar na documentação - Docs Oracle - java.sql.Date). Sugiro usar a classe Calendar e fazer as conversões necessárias quando for enviar ao BD.

Melhorando minha resposta:

Preciso do retorno - dd/MM/yyyy

Não sabia das observações. Estou buscando na net o que preciso e escrevendo código.
Tenho que estudar um cado de coisa ainda hehe

Entendido. Vou trabalhar com a classe calendar. E posto o resultado aqui.

Obrigado!

Não é necessário fazer conversões pra enviar a date hora ao banco, é só usar um objeto do tipo de dado adequado de acordo com a coluna do banco.

Se quer salvar a data e hora no banco, utilize uma coluna do tipo date time na sua tabela e no Java utilize um objeto do tipo Timestamp.

Exemplo:

String textoDataHora = "17/10/2019 10:53:15";
DateFormat formato = new SimpleDateFormat("dd/MM/yyyy HH:mm:ss");
Date dataHora = formato.parse(textoDataHora);
Timestamp dataHoraPraSalvarNoBanco = new Timestamp(dataHora.getTime());