Método "getDay" da classe Date retornando 0

5 respostas
E

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:
//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;
	}

5 Respostas

J

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.

R

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
J

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

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.

E
Deixei com o calendar, rodou certinho também....valeu galera!!!
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;
	}

Criado 24 de janeiro de 2010
Ultima resposta 24 de jan. de 2010
Respostas 5
Participantes 4