Método "getDay" da classe Date retornando 0

Boa tarde,

Pessoal, criei um método para me retornar dia, data e hora do sistema, para isto usei a classe Date e seus métodos(getDay, getHours, getMinutes). O retorno destes métodos eu converto para String, concateno tudo e retorno um String com dia, data e hora. Quando fiz o debug notei que a data e hora vieram certinhas, mas o dia me retorna sempre 0. Alguém sabe o que pode ser???
Código usado e no print anexo a tela de debug mostrando que a variável dia ficou com valor 0:

[code]//MÉTODO QUE BUSCA E RETORNA DIA, HORA E MINUTO DO SISTEMA
private String buscarDiaHoraMinutoSistema(){
String diaHoraMin = null;
String dia = null;
String hora = null;
String minuto = null;
Date date = new Date();
dia = String.valueOf(date.getDay());
hora = String.valueOf(date.getHours());
minuto = String.valueOf(date.getMinutes());
diaHoraMin = “Dia:” + dia + " hora:" + hora + " Minuto:" + minuto;

	return diaHoraMin;
}[/code]


Cara, esses métodos que você está invocando estão depreciados! Qual a IDE que você está usando?

Você resolve o seu problema da seguinte forma:

private void assimQueSePegaEssasInformacoes() {
	Calendar calendar = Calendar.getInstance();
	calendar.setTime(new Date());
	int dia = calendar.get(Calendar.DAY_OF_MONTH);
	int hora = calendar.get(Calendar.HOUR_OF_DAY);
	int minuto = calendar.get(Calendar.MINUTE);
}

Basta usar a classe Calendar.

Att.

Está retornando zero pois este método retorna um inteiro representando o dia da semana, e não do mês. Curiosamente, 0 representa o domingo.
De toda forma todos estes métodos que você está utilizando já estão marcados como “Deprecated” na API. Utilize a classe Calendar no lugar de Date.
Por exemplo:

Calendar hoje = Calendar.getInstance (); // pega data atual do sistema.
hoje.get (Calendar.DAY_OF_MONTH); // retorna o dia do mês

O melhor é usar a classe GregorianCalendar

o método getDay da classe Date retorna o dia da semana, começando em Domingo.
Logo, hoje, domingo, retorna zero; amanhã, segunda, retornará 1…etc

Calendar cal = new GregorianCalendar();
int era = cal.get(Calendar.ERA); // 0=AC, 1=DC 
int year = cal.get(Calendar.YEAR); // 2010
int month = cal.get(Calendar.MONTH); // 0=Jan, 1=Fev, ... 
int day = cal.get(Calendar.DAY_OF_MONTH); // 24... 

Valeu!!! Verifiquei aqui, realmente o getDay(depreciado) retorna o dia da semana. Usei o getDate e retornou o dia certinho.
Mais uma dúvida, como a classe date esta depreciada, seria melhor usar o calendar então??? Apesar da classe date com o método getDate funcionar corretamente.

Deixei com o calendar, rodou certinho também…valeu galera!!!

[code]private String buscarDiaHoraMinutoSistema(){
String diaHoraMin = null;
String dia = null;
String hora = null;
String minuto = null;
Calendar calendar = new GregorianCalendar();
dia = String.valueOf(calendar.get(Calendar.DAY_OF_MONTH));
hora = String.valueOf(calendar.get(Calendar.HOUR));
minuto = String.valueOf(calendar.get(Calendar.MINUTE));
diaHoraMin = “Dia:” + dia + “-” + hora + “:” + minuto;

	return diaHoraMin;
}[/code]