Problemas com Calendar

Bom to Precisando ajeitar uma datas e horas, mas to tento mtos problemas com a classe Calendar :D.

Tipo assim…

Calendar cal = new GregorianCalendar().getInstance();
		cal.setTime(new Date());
		int dia = cal.DAY_OF_MONTH;
		System.out.println(dia);

Bom como hoje eh dia 12, era pra imprimir 12 neh… mas imprimi 5…
tipo o que tem d errado, e alguem tem alguma referencia que eu possa aprender + sobre Calendar…

Mto Obrigado :smiley:

Faça assim:

Calendar cal = Calendar.getInstance();  
int dia = cal.get( Calendar.DAY_OF_MONTH );
System.out.println(dia);  

Valeo Amigo.

Meo. tem Como pegar a hora inteira ou data inteira…

tipo
09/12/2009 e 12:55:05

Ou tem q montar pegando tipo Hora, montar uma string e transformar para Date.

Dá uma pesquisa na classe SimpleDateFormat

Consegui Valeo…

Calendar cal = Calendar.getInstance(); // raramente você precisa usar new GregorianCalendar. 
DateFormat df = new SimpleDateFormat ("dd/MM/yyyy HH:mm:ss");
System.out.println (df.format (cal.getTime()); // imprime 12/08/2009 14:08:03 (por exemplo).

Mas o Problema q retorna uma String…
O meu Metodo recebe Date…

Como eu deveria fazer?

Mais se seu método recebe uma Date, pq vc quer pegar hora inteira ou data inteira?

Se vc quer simplesmente transformar um Calendar em date faça:

cal.getTime();

Se vc quer zerar a hora faça assim:

cal.set(Calendar.HOUR,0);
cal.set(Calendar.MINUTE,0);
cal.set(Calendar.SECOND,0);

Se vc quer um objeto que represente somente a hora sem data… Sinto lhe informar mais na API padrão ainda não dá… No Java 7 teremos uma nova API de datas.

Porém dê uma olhada em Joda-Time.

Pensei num eskema mais o menos assim…
mas ainda n deu certo…

public Calendar getData() {
		Calendar calendar = Calendar.getInstance();
		DateFormat formatDate = new SimpleDateFormat("dd/MM/yyyy");
		String hour = formatDate.format(calendar.getTime());
		hora = formatDate.parse(hour);
		return data;
	}

Explique onde vc quer chegar…

Quer obter a hora? Ou a data? E para que vc vai usa-lá…

Bom to criando 1 sistema pra empresa. e preciso marca data e hora que foi inscrito um anuncio… pegando do sistema…

mas em campos diferentes…
simples.

Mas eu n consigo :smiley:

Você vai ter que pegar o calendar e extrair dele hora (HH:mm:ss) e data (dd/MM/yyyy), ambos em formato String e apresentar para o usuário.

Um Date, ou um Calendar, representam estantes do tempo e não uma Hora ou uma Data. Vc tem que extrair deles esses valores para poder apresentar ao usuário.

Calendar cal = Calendar.getInstance();

DateFormat dfData = new SimpleDateFormat ("dd/MM/yyyy");  
DateFormat dfHora = new SimpleDateFormat ("HH:mm:ss");  

String data = dfData.format (cal.getTime()); 
String hora = dfHora.format (cal.getTime());

Isso eu fiz mas e agora… pra eu salvar isso no meu DAO.
que recebe Calendar.???

Tipo

[code]
Objeto.setData(Data);
C eh 1 String. eu dei 1 parse mas ai tem q dar throws no metodo…
tem outro jeito de fazer isso?

Perfeito é isso mesmo…

Exceções são coisas boas… Não deixe de usar métodos só pq vc é obrigado a tratar as exceções…

A última edição da revista Mundo Java tem uma matéria muito legal sobre exceções…

Demoro Então…
Valeo Ignacio…

Fiz Assim mas da NUll Pointer Exception :confused:

public Calendar getData() throws ParseException {
		Calendar calendar = Calendar.getInstance();   
        DateFormat formatDate = new SimpleDateFormat("dd/MM/yyyy");
        String myDate = formatDate.format(calendar.getTime());
        Date date = formatDate.parse(myDate);
        data.setTime(date);
		return data;
	}
		

Esse código não compila…

public Calendar getData() throws ParseException {  
         Calendar calendar = Calendar.getInstance();     
         DateFormat formatDate = new SimpleDateFormat("dd/MM/yyyy");  
         String myDate = formatDate.format(calendar.getTime());  
         Date date = formatDate.parse(myDate);  
         data.setTime(date);   //Quem é data? 
         return data;  
     }  

meu Atributo…

Eskeci de Mencionar :X

Então é nele que está dando null pointer… De um new nele primeiro…

Poste todo o código de sua classe…