[Resolvido] Dúvida setTimeInMillis

Olá pessoal,

 Tenho um servidor rodando em perl que me passa o tempo pelo metodo TIME() - que é o mesmo que o getTimeInMillis do Calendar.

Porém o do perl me retorna em segundos e do java em Millisegundos.
Exemplos extraidos:

Em perl = 1279570750
Em Java = 1279570751686

Quando tentei setar o 'calendar.setTimeInMillis() com o valor do perl - a data e hora não confere. Foi então que decidi multiplicar o valor de perl por 1000 ( converter de seg. para milisegundo ), e nem a variavel primitiva long consegue guardar esse valor… e também jogando o valor para o metodo setTimeInMillis tb não bate…

Alguem ja passou por isso?

1 - O long consegue guardar o valor.
2 - O perl retorna o número de segundos desde que data? (talvez nao seja o mesmo do java… já verificou?)
3 - Verifique em qual fuso horário estão seus valores, tanto de java, quanto de perl.

long l = Long.parseLong("1279570750"+"0000");
long l = Long.valueOf(1279570750)*1000;
		long x = (1279570750L * 1000L);
		
		calendar.setTimeInMillis(x);
		
		System.out.println(calendar.getTime());

		calendar.setTimeInMillis(1279570751686L);
		
		System.out.println(calendar.getTime());

resultado:

Mon Jul 19 17:19:10 BRT 2010
Mon Jul 19 17:19:11 BRT 2010

Não esqueça se explicitar que é long (L ou l) ou utilizar o objeto Long

xiiii,

eu faço da seguint maneira:

long i = System.currentTimeMillis();

pois pego eu pego o tempo com o java msm, nunca tive problemas…

boa sorte!

A solução do Z resolveu meu problema.

Valeu !!! Agora consegui pegar o valor igual.

E pedruhenrik … pegando do Java é tranquilo… o problema que tive foi com o valor q tive que pegar do PERL … :slight_smile:
Valeu a ajuda!

demoro!

^^