Перевод секунд в дату от рождества Хр

250
06 февраля 2019, 00:20

Подскажите пожалуйста, как в java перевести строку 63672393600 в дату, чтобы не придумывать велосипед?

Строка - это дата в секундах от рождества Христова.

результат должен получиться - 2018-09-13 12:26:42 (это данные из базы, из которой вытянули данные с этой датой и конвертировали в секунды).

Answer 1
LocalDateTime ldt = LocalDateTime.of(1, Month.JANUARY, 1, 12, 26, 42);
LocalDateTime resDate = ldt.plusSeconds(63672393600L);
System.out.println("resDate = " + resDate);

Вывод:

resDate = 2018-09-13T12:26:42

Как правильно заметил комментатор @default locale@, непонятно почему время не 00:00. Если считать, что Хр родился в 12:26:42, тогда все сходится.

Answer 2

Ну если грубо, то как-то так:

long seconds = 63672393600L;
//первое число первого месяца первого года
GregorianCalendar calendar = new GregorianCalendar(1, 0, 1);
//метод add не работает с long, поэтому переводим в миллисекунды для добавления
calendar.setTimeInMillis(calendar.getTimeInMillis()+seconds*1000);
Date date = calendar.getTime(); //11.09.2018 

Вы не написали, какой календарь нужно использовать для рассчетов. В Java GregorianCalendar использует гибридный: с переходом с юлианского на григорианский в октябре 1582-го. Если нужен другой расчет, то потребуются уточнения. (Про часовые пояса я даже не говорю).

Демонстрация на ideone: https://ideone.com/sRWAS4

READ ALSO
Создание конструктора в Java

Создание конструктора в Java

Прошу помощи в понимании аспектов конструктораПример, у меня есть какой-то класс SomeClass и какой-то объект SomeObject, при инициализации нового экземпляра...

272
GraphView выпадает в null

GraphView выпадает в null

Есть код для добавления позиций в массив и вывода графика в GraphView:

223
чередование действий по клику мыши

чередование действий по клику мыши

Я пишу крестики нолики, и хочу сделать пока по простому - игру с другом, где ты кликаешь мышкой по клетке и у тебя появляется крестик, потом...

258