Для управления датой / временем вы хотите, чтобы все ваши моменты использовали простую, монотонную, линейную шкалу.Человеческие календари, часовые пояса, летнее время делают их более сложными и лучше всего их хранить в слое дисплея.
Обычная шкала - это кодирование моментов в виде количества секунд (или миллисекунд) с определенного источника,В Java вы будете использовать миллисекунды с 1 января 1970 года в 00:00:00 UTC (также известное как «эпоха»);вы также игнорируете дополнительные секунды, поэтому преобразования в любую дату и время в любом календаре являются чисто алгоритмическими.Эта шкала - это то, что возвращает System.currentTimeMillis()
.В мире Unix вы можете использовать число секунд с начала эпохи, поскольку именно это ядро Unix склонно возвращать (через системный вызов time()
).
Такиелинейные шкалы позволяют легко сравнивать даты и вычислять временные интервалы, в то время как все, что основано на календаре, делает такие вычисления более сложными.
Так что мой совет - отойти от юлианских дат, но определенно не конвертировать их в григорианские даты.Наоборот, на самом деле.