wiem, że jest to stary post, ale ja po prostu powiedzieć ...
Odpowiedź dane przez Jasona Cohena są dobrym przybliżeniem nawrócenia.
Istnieje jednak pewien problem związany z liczbą sekund w ciągu jednego dnia. Dzień nie jest - dokładnie - 86400 sekund i okresowo są dodawane sekundy do dni, aby zachować synchronizację czasu z różnymi obserwowalnymi standardami. Nazywane są one "sekundami sekundowymi" (https://en.wikipedia.org/wiki/Leap_second). Sekundowe sekundy są dodawane do UTC, aby utrzymać je w ciągu 1 sekundy od UT1.
Jest oczywiste, że wraz z upływem czasu od 1 stycznia 1970, zwykła konwersja powyżej spowoduje wzrost liczby błędów z "faktycznego obserwowalnego czasu". W latach 1972-2013 dodano 25 sekund przestępnych.
Częścią piękna i prostoty liczb dnia juliańskiego jest to, że w ogóle nie reprezentują ciągów znaków daty. Są to tylko czas, jaki upłynął od początku epoki Juliańskiej, podobnie jak czas POSIX jest ciągłą liczbą milisekund od epoki POSIX. Jedynym problemem, który istnieje, jest próba zamapowania numeru juliańskiego na lokalny łańcuch daty.
Jeśli potrzebujesz ciągu dat z dokładnością do minuty (w 2013 r.), Będziesz potrzebować algorytmu, który będzie uwzględniał sekundy przestępne.
zapomniałeś .5 na końcu. Dodatkowa stała powinna być 2440587.5 –
Nie mogę zrozumieć, co to jest 86400.0? a wynik jest daleki od aktualnej osi czasu. – eapo
86400 to współczynnik od sekund do dni (1 dzień = 24 godziny/dzień x 60 minut/godzinę x 60 sekund/minutę) – TNgo