Sé que esta es una entrada antigua, pero sólo voy a decir ...
La respuesta dado por Jason Cohen es una buena aproximación de la conversión.
Aunque hay un problema relacionado con la cantidad de segundos en un día. Un día no es -exactamente- de 86400 segundos de duración, y periódicamente se agregan segundos a los días para mantener el tiempo sincronizado con los diversos estándares observables. Estos se denominan Leap Seconds (https://en.wikipedia.org/wiki/Leap_second). Los segundos intercalares se agregan a UTC para mantenerlo dentro de 1 segundo de UT1.
Es lógico pensar que a medida que transcurra más y más tiempo desde el 1 de enero de 1970, la simple conversión anterior acumulará más y más errores a partir del "tiempo real observable". Entre 1972 y 2013 se agregaron 25 segundos intercalares.
Parte de la belleza y la simplicidad de los números del día juliano es que no representan cadenas de fechas en absoluto. Son solo un recuento del tiempo transcurrido desde el inicio de la Época Juliana, al igual que el tiempo POSIX es un conteo continuo de milisegundos desde la Época POSIX. El único problema que existe, entonces, es cuando intenta mapear un número del día juliano a una cadena de fecha localizada.
Si necesita una cadena de fecha con una precisión de un minuto (en 2013), entonces necesitará un algoritmo que pueda dar cuenta de los segundos intercalares.
se le olvidó el 0,5 al final. La constante añadida debe ser 2440587.5 –
no puedo entender lo que es el 86400.0? y el resultado está lejos de la línea de tiempo actual. – eapo
86400 es el factor de segundos a días (1 día = 24 horas/día x 60 minutos/hora x 60 segundos/minuto) – TNgo