Duvida no uso de Date ...incluir um ano?

Olá,

duvida como usar Date pois queria alterar o ano da data conforme abaixo
pois coloquei 2009 e apareceu 3909 ???

se alguém puder me ajudar agradeceria …

abs


Date novadain = new Date();
			
			novadain.setYear(2009);
			ds.setInDate(novadain);
			Date novadaout = new Date();
			novadaout.setYear(2009);
            ds.setOutDate(novadaout);
	        dao.merge(ds);

Antes da Alteração
Id           = 13
Data Inicio = 16/12/2008
Data Fim    = 16/12/2008
_______________________________________
Depois da Alteração
Id           = 13
Data Inicio = 16/12/3909
Data Fim    = 16/12/3909

Vc pode usar o Calendar…

                Calendar c = Calendar.getInstance();
	c.set(Calendar.YEAR, 2010);
	Date data  = c.getTime();
	System.out.println(data);

Cara…a classe date está depreciada.

É melhor vc usar Calendar.

Calendar algo = Calendar.getInstance();
algo.setTime(suaVariavelDate.getTime());
algo.add(Calendar.YEAR, 1); 
Date atualizada = algo.getTime();

Só corrigindo:
na verdade nao foi a classe Date inteira que foi depreciada, somente os métodos que trabalham com dia, mes e ano.

Mas isso já atrapalha bem, por isso recomendo Calendar.

na data inicial informei 25/01/2009 e porque saiu 25/02/2009

na data final informei 16/12/2019

e porque saiu 16/01/2020


 	c.set(Calendar.YEAR, 2009);
		  	c.set(Calendar.MONTH, 01);
		  	c.set(Calendar.DAY_OF_MONTH, 25);
		  	Date novadain = c.getTime();
			ds.setInDate(novadain);

			
			c.set(Calendar.YEAR, 2019);
		  	c.set(Calendar.MONTH, 12);
		  	c.set(Calendar.DAY_OF_MONTH, 16);
			
			Date novadaout = c.getTime();
			

e saiu assim


Data Inicio = 25/02/2009
Data Fim    = 16/01/2020

[quote=paribe]

Olá,

duvida como usar Date pois queria alterar o ano da data conforme abaixo
pois coloquei 2009 e apareceu 3909 ???

se alguém puder me ajudar agradeceria …

abs


Date novadain = new Date();
			
			novadain.setYear(2009);
			ds.setInDate(novadain);
			Date novadaout = new Date();
			novadaout.setYear(2009);
            ds.setOutDate(novadaout);
	        dao.merge(ds);

[code]

Antes da Alteração
Id = 13
Data Inicio = 16/12/2008
Data Fim = 16/12/2008


Depois da Alteração
Id = 13
Data Inicio = 16/12/3909
Data Fim = 16/12/3909
[/code][/quote]

Cara no objeto Date, o ano quando configurado soma o valor do argumento com 1900(Olha a documentação). Vc tem que configurar o ano subtraindo o ano de 1900.
novadain.setYear(2009 - 1900);

ok…valeu pelo retorno !!!