Метка времени MySQL для преобразования даты в Java - PullRequest
5 голосов
/ 13 августа 2010

Как я могу преобразовать время в метке времени Unix в нормальное время?

Ответы [ 2 ]

19 голосов
/ 13 августа 2010

Ваш вопрос неопределенный и неоднозначный. Я оставлю неопределенность с часовым поясом.

Как преобразовать время в метке времени Unix в обычное время?

Я подозреваю, что вы как-то получаете значение long или, возможно, String из БД вместо Date. В 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().

1 голос
/ 13 августа 2010

Метка времени Unix - это секунды с начала эпохи. CurrentTimeMillis в Java - это миллисекунды с начала эпохи. Вы можете получить объект Java Date с простым умножением, подобным этому:

 Date dateFromUnixTime = new Date( 1000l * unixTime) ;

Оттуда вы можете отформатировать его, используя обычные инструменты форматирования даты в Java.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...