Trabalhando com Date

9 respostas
paulofernandesjr

opa!

estava lendo este tópico

http://www.guj.com.br/posts/list/22644.java

ai logo de cara me deparei com uma duvida

como que eu passo os parametros dinamicamente para a data

import java.util.Date;

public class Teste {

	public static void main(String args[]){
		Date dia = new Date();
		System.out.println( dia );
	}

}

outra duvida, como que no codigo acima eu consigo separar o que é dia, do que é mes, etc…

abraço

9 Respostas

xandevieira
dia.getDay();
dia.getMonth();
dia.getYear();

mas estão deprecated

paulofernandesjr

avsouza:
dia.getDay(); dia.getMonth(); dia.getYear();
mas estão deprecated

então elas estão em desuso

acho que a melhor escolha seja

formatar a data

http://www.exampledepot.com/egs/java.text/FormatDate.html

abraço

admlaugusto

Ola…
tem sim como separa o dia, o mes, o ano.

public void le_data()     {

Date data = new Date();

mes    = “”+data.getMonth();//0 a 11

dia    = “”+data.getDate();

ano    = “”+(1900 + data.getYear());

}

Espero tê-lo ajudado.

gui_sv

utilize a Calendar

paulofernandesjr

admlaugusto:
Ola…
tem sim como separa o dia, o mes, o ano.

public void le_data()     {

Date data = new Date();

mes    = “”+data.getMonth();//0 a 11

dia    = “”+data.getDate();

ano    = “”+(1900 + data.getYear());

}

Espero tê-lo ajudado.

segundo a documentação

http://java.sun.com/j2se/1.4.2/docs/api/

estas funções estão em desuso

li sobre a Calendar mas não entendi bem

estou fazendo dessa forma

import java.text.SimpleDateFormat;
import java.util.Date;

public class Teste {
	
	
	public static String formataData(String tipo, Date data){
		SimpleDateFormat formata = new SimpleDateFormat(tipo);
		return formata.format(data);
	}
	
	public static void main(String args[]){
		Date data = new Date();
		System.out.println( data );
		
		
		/**
		 * fim dessa forma, mas achei burro ter que fazer varias vezes a mesma coisa
		 * ai resolvi criar  o metodo acima 
		 */
		 
		SimpleDateFormat formAno = new SimpleDateFormat("yyyy");
		SimpleDateFormat formMes = new SimpleDateFormat("MM");
		SimpleDateFormat formDia = new SimpleDateFormat("dd");
		
		
		String ano = formAno.format(data);
		String mes = formMes.format(data);
		String dia = formDia.format(data);
		
		System.out.println(ano);
		System.out.println(mes);
		System.out.println(dia);
		
		
		//teste do metodo
		System.out.println( formataData("HH", data) );
		
	}

}

isso é errado?

abraço

victorwss
Calendar c = new GregorianCalendar(ano, mes, dia);

Ou:

Calendar c = new GregorianCalendar(); c.setTime(date);
E então:

int dia = c.get(Calendar.DATE); int mes = c.get(Calendar.MONTH) + 1; // É importante esse + 1 !!!!! int ano = c.get(Calendar.YEAR);

paulofernandesjr

galera
consegui fazer, mas consegui de duas formas

1º utilizando o SimpleDateFormat

Date data = new Date();
		SimpleDateFormat formAno = new SimpleDateFormat("yyyy");
		SimpleDateFormat formMes = new SimpleDateFormat("MM");
		SimpleDateFormat formDia = new SimpleDateFormat("dd");

2º utilizando o GregorianCalendar

Date data = new Date();
Calendar c = new GregorianCalendar();
		c.setTime(data); 
		int diaCalendario = c.get(Calendar.DAY_OF_MONTH);
		int mesCalendario = c.get(Calendar.MONTH) + 1; 
		int anoCalendario = c.get(Calendar.YEAR);

agora vem a pergunta: qual forma devo utilizar? tem algum padrão? ou cada caso é um caso? se puderem me explicar o porque disso agradeço mais ainda.

abraço

victorwss

paulofernandesjr:
galera
consegui fazer, mas consegui de duas formas

1º utilizando o SimpleDateFormat

Date data = new Date();
		SimpleDateFormat formAno = new SimpleDateFormat("yyyy");
		SimpleDateFormat formMes = new SimpleDateFormat("MM");
		SimpleDateFormat formDia = new SimpleDateFormat("dd");

2º utilizando o GregorianCalendar

Date data = new Date();
Calendar c = new GregorianCalendar();
		c.setTime(data); 
		int diaCalendario = c.get(Calendar.DAY_OF_MONTH);
		int mesCalendario = c.get(Calendar.MONTH) + 1; 
		int anoCalendario = c.get(Calendar.YEAR);

agora vem a pergunta: qual forma devo utilizar? tem algum padrão? ou cada caso é um caso? se puderem me explicar o porque disso agradeço mais ainda.

abraço

Use a segunda. Ela é mais rápida internamente porque faz apenas alguns cálculos e pronto, enquanto a primeira converte o Date em Strings e de Strings para números, um overhead desnecessário.

paulofernandesjr

ok.

muito obrigado pela ajuda, e pela explicação

abraço

Criado 16 de abril de 2008
Ultima resposta 16 de abr. de 2008
Respostas 9
Participantes 5