Como eu faço para descobrir a "data de hoje" em java?

Eu estou precisando descobrir a “data de hoje”. Je tentei fuçar a classe Date, mas não obtive sucesso, gostaria de saber como eu posso resolver esse problema. Que classe eu uso e como usá-la? Vlws,

Date hoje = new Date();

utiliza a classe Calendar
http://java.sun.com/j2se/1.4.2/docs/api/java/util/Calendar.html

verifique os comandos que tem nela… é bem simples de usar

Bom dia

Então eu utilizo assim:

Date dt = new Date();

E depois formato com o SimpleDateFormat

SimpleDateFormat formato = new SimpleDateFormat(“dd/mm/yyyy”);
formato.format(dt);

Espero ter ajudado…

Falou.

[quote=nbluis] Date hoje = new Date(); [/quote]

Eu ja tentei usar a classe Date, mas eu não obtive os valores corretos para dia mes e ano. Eu estou trabalhando com data no seguinte formato: dd/mm/aaaa. Eu quero pegar o dia, mes e ano separados.

Para pegar a hora do jeito default use o Date today = new Date();, e para formatar o SimpleDateFormat.

Tem quilos sobre isso no google, procura por SimpleDateFormat() no google…

Utilize a classe calendar


//Cria uma instância da classe Calendar com a data atual
Calendar dataAtual = Calendar.getInstance();

Integer ano = dataAtual .get(Calendar.YEAR);
Integer mes = dataAtual .get(Calendar.MONTH);
Integer diaDoMes = dataAtual .get(Calendar.DAY_OF_MONTH);

é isso que vc precisa?


public static int getDia(Date data) {
	GregorianCalendar gc = getDateCalendar(data);
	return gc.get(GregorianCalendar.DAY_OF_MONTH);
}

public int getMes(Date data) {
	GregorianCalendar gc = getDateCalendar(data);
	return gc.get(GregorianCalendar.MONTH);
}

public int getAno(Date data) {
    GregorianCalendar gc = getDateCalendar(data);
    return gc.get(GregorianCalendar.YEAR);
}

procurar no google???
O Caio Vinicius deu o codigo pronto para ele.
E so se virar nos 30! :stuck_out_tongue:

[quote=prbpedro]Utilize a classe calendar

[code]

//Cria uma instância da classe Calendar com a data atual
Calendar dataAtual = Calendar.getInstance();

Integer ano = dataAtual .get(Calendar.YEAR);
Integer mes = dataAtual .get(Calendar.MONTH);
Integer diaDoMes = dataAtual .get(Calendar.DAY_OF_MONTH);

[/code][/quote]

Deu certo, mas eu me deparei com um probleminha (eu tive o mesmo problema ao pegar a data por um javascript), o mês do ano é 7(julho), mas o retorno que eu obtive foi 6(junho). Ou seja, o java está me retornando uma data com o dia e o ano corretos, mas o mes que obtenho está errado por uma unidade de diferença. Alguém pode me ajudar em relação a isso?

Se tu der uma olhada na API como o nosso amigo alucardeck falou, verás que a representação de meses para java.util.Calendar é diferente.

[quote=claudiop.costa][quote=prbpedro]Utilize a classe calendar

[code]

//Cria uma instância da classe Calendar com a data atual
Calendar dataAtual = Calendar.getInstance();

Integer ano = dataAtual .get(Calendar.YEAR);
Integer mes = dataAtual .get(Calendar.MONTH);
Integer diaDoMes = dataAtual .get(Calendar.DAY_OF_MONTH);

[/code][/quote]

Deu certo, mas eu me deparei com um probleminha (eu tive o mesmo problema ao pegar a data por um javascript), o mês do ano é 7(julho), mas o retorno que eu obtive foi 6(junho). Ou seja, o java está me retornando uma data com o dia e o ano corretos, mas o mes que obtenho está errado por uma unidade de diferença. Alguém pode me ajudar em relação a isso?[/quote]
É isso mesmo! Foi planejado assim!

A idéia é que você tenha um vetor como o abaixo:

String[] meses = new String[]{"janeiro", "fevereiro", "março", "abril", "maio", "junho", "julho", "agosto", "setembro", "outubro", "novembro", "dezembro"};

Então ao obter o mês, será a posição do mesmo em um vetor desse tipo, e não o número correspondente ao mês!

Ah, detalhe: tanto usando Date como Calendar, você sabe que a data obtida é a data da máquina onde o programa está rodando, não sabe?

Então se a data do computador estiver errada, será utilizada essa data errada!

A menos que você obtenha a região onde o sistema está (o fuso horário) e se conecte com um servidor de horário para recuperar data e hora corretos nessa região… mas não sei detalhes sobre isso!

O mês com o index 0 é o janeiro, a contagem não começa a partir do index 1.

Muito obrigado. Entendi o que você quiz dizer :slight_smile: :
“the first month of the year is JANUARY which is 0; the last depends on the number of months in a year.”

O problema pode ser resolvido facilmente somando o valor recebido pelo java com um ja que a contagem do dia e do ano estão equivalentes com o que usamos no dia dia. Valeu pessoal!

[quote=claudiop.costa]Muito obrigado. Entendi o que você quiz dizer :slight_smile: :
“the first month of the year is JANUARY which is 0; the last depends on the number of months in a year.”

O problema pode ser resolvido facilmente somando o valor recebido pelo java com um ja que a contagem do dia e do ano estão equivalentes com o que usamos no dia dia. Valeu pessoal![/quote]
Exato. Faça isso sem medo.

Se precisar da data formatada em portugues.
Pode fazer assim:

		DateFormat dat = DateFormat.getDateInstance(DateFormat.LONG, new Locale("pt","BR"));
		System.out.println(dat.format(new Date()));

Resultado:
17 de Julho de 2008

Flw