Я знаю, что это старый пост, но я просто скажу ...
Ответ, данный Джейсоном Коэном, является хорошим приближением к конверсии.
Однако существует проблема, связанная с количеством секунд в одном дне. День длится не совсем 86400 секунд, и к ним периодически добавляются секунды, чтобы синхронизировать время с различными наблюдаемыми стандартами. Они называются Leap Seconds (https://en.wikipedia.org/wiki/Leap_second). В UTC добавляются дополнительные секунды, чтобы сохранить его в течение 1 секунды от UT1.
Естественно, что с 1 января 1970 года прошло все больше и больше времени, и простое приведенное выше преобразование будет все больше и больше приводить к ошибкам из "фактического наблюдаемого времени". Между 1972 и 2013 годами было добавлено 25 високосных секунд.
Часть красоты и простоты чисел юлианского дня в том, что они вообще не представляют строки даты. Это просто подсчет времени, прошедшего с начала юлианской эпохи, так же, как время POSIX - это непрерывный подсчет миллисекунд со времени начала POSIX. Единственная существующая проблема заключается в том, что вы пытаетесь сопоставить число юлианского дня с локализованной строкой даты.
Если вам нужна строка с точностью до одной минуты (в 2013 году), вам потребуется алгоритм, который может учитывать дополнительные секунды.