Trabalhando com Date

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

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

mas estão deprecated

[quote=avsouza] dia.getDay(); dia.getMonth(); dia.getYear();
mas estão deprecated[/quote]

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

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.

utilize a Calendar

[quote=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.

[/quote]

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

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

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

[quote=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
[/quote]

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.

ok.

muito obrigado pela ajuda, e pela explicação

abraço