Dúvidas sobre Date e Calendar

6 respostas
Eduardo_Bregaida

Olá pessoal, estou com uma dúvida, usaram Date aki no trabalho e estou tirando as bibliotecas deprecadas para conseguir migrar sem warnings para Java 1.5, mas não sei se este é o caminho correto, estou fazendo assim:

Date dataRef = prDao.getDataReferencia(); Calendar dataRef2 = Calendar.getInstance(); dataRef2.setTime(dataRef);

Passando a Date para Calendar e usando o Calendar, mas não sei se me acarretará problemas…
[]s :smiley:

6 Respostas

zetamayossi

Eu gosto de utilizar o GregorianCalendar…

Acho mais coerente já que a GregorianCalendar representa o calendário usado pela maior parte dos países

GregorianCalendar.getInstance().getTime();
Eduardo_Bregaida

[quote=zetamayossi]Eu gosto de utilizar o GregorianCalendar…

Acho mais coerente já que a GregorianCalendar representa o calendário usado pela maior parte dos países

GregorianCalendar.getInstance().getTime();

mas oq ocorre é que qdo eu dou um data.getMonth(); ele me retorna diferente de quando eu dou um calendar.Month;

rissato

Use Calendar.getInstance(). Deixe que esse método se encarregue de escolher qual é a classe mais apropriada (que na maioria das vezes é GregorianCalendar).

Eduardo_Bregaida

Heero Yuy:
Olá pessoal, estou com uma dúvida, usaram Date aki no trabalho e estou tirando as bibliotecas deprecadas para conseguir migrar sem warnings para Java 1.5, mas não sei se este é o caminho correto, estou fazendo assim:

Date dataRef = prDao.getDataReferencia(); Calendar dataRef2 = Calendar.getInstance(); dataRef2.setTime(dataRef);

Passando a Date para Calendar e usando o Calendar, mas não sei se me acarretará problemas…
[]s :D

Então, estou usando Calendar dataRef2 = Calendar.getInstance();

zetamayossi

import java.util.*;

public class Teste {

public static void main(String[] args) {
	String[] ids = TimeZone.getAvailableIDs(-8 * 60 * 60 * 1000);

	SimpleTimeZone pdt = new SimpleTimeZone(-8 * 60 * 60 * 1000, ids[0]);
	
	pdt.setStartRule(Calendar.APRIL, 1, Calendar.SUNDAY, 2 * 60 * 60 * 1000);
	pdt.setEndRule(Calendar.OCTOBER, -1, Calendar.SUNDAY, 2 * 60 * 60 * 1000);

	Calendar calendar = new GregorianCalendar(pdt);
	
	Date trialTime = new Date();
	calendar.setTime(trialTime);

	System.out.println("MES DATE: " + trialTime.getMonth() );
	System.out.println("MES CALENDAR: " + calendar.get( Calendar.MONTH ));
}

}

Teste este código… vc vera que o mes retornado é exatamente igual…

Num sei exatamento se sua dúvida é disso… manipular o calendar… mas pode ser q funcione…

Eduardo_Bregaida

Achei, quando eu quiser pegar o mes igual ao metodo getMonth do Date eu preciso fazer assim:
calendar.get(Calendar.MONTH);
por isso nao funcionava o meu q estava Calendar.Month…

Vlw Michael por me falar :smiley:

Criado 3 de janeiro de 2007
Ultima resposta 3 de jan. de 2007
Respostas 6
Participantes 3