Как преобразовать метку времени в unix в нормальное время?
Ваш вопрос расплывчатый и неоднозначный. Я оставлю двусмысленность часового пояса.
Как мне преобразовать время из метки времени unix в нормальное время?
Я подозреваю, что вы каким-то образом получаете long
или, может быть, значение String
из БД вместо a Дата
. В JDBC вы обычно хотели бы использовать соответствующие методы для получения типов данных, специфичных для БД. Тип данных MySQL TIMESTAMP
может быть получен с помощью ResultSet # getTimestamp ()
, который дает вам java.sql.Timestamp
, который, в свою очередь, является подклассом java.util.Date
.
В общем, следует сделать следующее:
Date date = resultSet.getTimestamp("columnname");
Для дальнейшего форматирования в удобочитаемом формате всякий раз, когда вы собираетесь представить его конечному пользователю, используйте SimpleDateFormat
. Щелкните ссылку, она содержит обзор всех шаблонов. Вот пример:
String dateString = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(date);
Чтобы сделать все наоборот, используйте соответственно SimpleDateFormat # parse ()
и PreparedStatement # setTimestamp ()
.
Временная метка Unix - секунды, прошедшие с "эпохи". CurrentTimeMillis в Java - это миллисекунды с «эпохи». Вы можете получить объект Java Date простым умножением, как это:
Date dateFromUnixTime = new Date( 1000l * unixTime) ;
Оттуда вы можете отформатировать его, используя обычные инструменты форматирования даты в Java.