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…
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 x = (1279570750L * 1000L);
calendar.setTimeInMillis(x);
System.out.println(calendar.getTime());
calendar.setTimeInMillis(1279570751686L);
System.out.println(calendar.getTime());