Transformar Segundos em Data e hora

Pessoal, preciso converter em uma data e hora um valor que possuo em segundos desde de 1970.
Por exemplo sei que 1227885063 representa algo aproximado de 28/11/2008 12:15:03.
Possuo uma rotina em Delphi, onde acho a quantidade de dias, e utilizo uma função nativa do delphi DecodeDate, e encontro a data e a hora.

Alguem pode me ajudar ou me informar como realizar essa conversão em Java.

[code]package com.superlocar.model;

import java.util.Calendar;
import java.util.Date;

public class Temp {
public static void main(String[] args) {
long milisec = 1227885063L*1000; //seu tempo em segundos x 1000 para milisecs
System.out.println(new Date(get1970() + milisec));

}

/**
 * Retorna 1970 em milisegundos
 * @return
 */
public static long get1970() {
	Calendar ano1970 = Calendar.getInstance();
	ano1970.set(Calendar.YEAR, 1970);
	ano1970.set(Calendar.MONTH, 0);
	ano1970.set(Calendar.DAY_OF_MONTH, 1);
	ano1970.set(Calendar.HOUR_OF_DAY, 0);
	ano1970.set(Calendar.MINUTE, 0);
	ano1970.set(Calendar.SECOND, 0);
	ano1970.set(Calendar.MILLISECOND, 0);
	return ano1970.getTimeInMillis();
}

}[/code]

saida do console foi

Fri Nov 28 15:11:03 GMT-03:00 2008

refatorando o ultimo código

[code]import java.text.DateFormat;
import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Date;

public class Temp {
public static void main(String[] args) {
DateFormat df = new SimpleDateFormat(“dd/MM/yyyy hh:mm:ss”);
System.out.println(df.format(getDate(1227885063L)));
//saido do console = 28/11/2008 03:11:03
}

/**
 * Retorna 1970 em milisegundos
 * @return
 */
public static long get1970() {
	Calendar ano1970 = Calendar.getInstance();
	ano1970.set(Calendar.YEAR, 1970);
	ano1970.set(Calendar.MONTH, 0);
	ano1970.set(Calendar.DAY_OF_MONTH, 1);
	ano1970.set(Calendar.HOUR_OF_DAY, 0);
	ano1970.set(Calendar.MINUTE, 0);
	ano1970.set(Calendar.SECOND, 0);
	ano1970.set(Calendar.MILLISECOND, 0);
	return ano1970.getTimeInMillis();
}
/**
 * Retorna uma data a partir dos segundos decorridos apos 1970
 * @param timeInSecs tempo decorrido apos 1970
 * @return
 */
public static Date getDate(long timeInSecs) {
	long milisec = 1227885063L*1000; //seu tempo em segundos x 1000 para milisecs
	return new Date(milisec + get1970()); // milisec + milisec1970
}

}
[/code]

Date myDate = new Date(segundos * 1000);

A classe Date conta em milisegundos desde 1970

Conhecimento é tudo O.o

Fique atento com o TimeZone!

		DateFormat df = new SimpleDateFormat("dd/MM/yyyy HH:mm:ss");
		df.getCalendar().setTimeZone(TimeZone.getTimeZone("GMT-3"));
		System.out.println(df.format(new Date(1227885063L * 1000)));

Conhecimento é tudo O.o[/quote]
Só complementando, são os mili-segundos configurados na bios/relógio do SO. A conta que vem desde 01/01/1970 00:00 UTC é o padrão UNIX, o que nos lembra que ninguém gosta de seguir padrões. Um dia você vai estar testando Smalltalk e vai ficar espantado com a diferença entre as contagens do Java e Smalltalk ( que começa a contar de 01/01/1901 ).

Isso é o inferno em C, pois depedendo do compilador/plataforma em que você trabalha é um formato diferente. Mais em:

Até!

Pessoal muito obrigado !!!