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.
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.