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!
[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 :
“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 :
“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