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

16 respostas
C

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,

16 Respostas

nbluis
Date hoje = new Date();
alucardeck

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

C

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.

C

nbluis:
Date hoje = new Date();

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.

P

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…

P

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);
xandevieira

é 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);
}
quebrado

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

C
prbpedro:
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);

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?

nbluis

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.

Fox_McCloud
claudiop.costa:
prbpedro:
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);

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?


É 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!
Fox_McCloud

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!

P

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

C

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!

Fox_McCloud

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!


Exato. Faça isso sem medo.

renanpto

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

Criado 17 de julho de 2008
Ultima resposta 17 de jul. de 2008
Respostas 16
Participantes 10