Конвертировать штамп времени Unix для даты в Java

Как конвертировать минут штамп времени Unix для даты и времени в Java. Например, штамп времени 1372339860 соответствуют четверг, 27 июня 2013 13:31:00 по Гринвичу.

Я хочу, чтобы преобразовать 1372339860 " до " 2013-06-27 13:31:00 по Гринвичу.

Редактировать : на самом деле я хочу, чтобы это было по нашему времени по Гринвичу-4, так и будет 2013-06-27 09:31:00.

Комментарии к вопросу (2)
Решение

Вы можете использовать SimlpeDateFormat в формат даты такой:

long unixSeconds = 1372339860;
// convert seconds to milliseconds
Date date = new java.util.Date(unixSeconds*1000L); 
// the format of your date
SimpleDateFormat sdf = new java.text.SimpleDateFormat("yyyy-MM-dd HH:mm:ss z"); 
// give a timezone reference for formatting (see comment at the bottom)
sdf.setTimeZone(java.util.TimeZone.getTimeZone("GMT-4")); 
String formattedDate = sdf.format(date);
System.out.println(formattedDate);

Шаблон класса simpledateformat берет если очень гибкое, вы можете проверить в javadocs все вариации можно использовать для того чтобы произвести различное форматирование на основе моделей вы напишите конкретный "дата". http://docs.oracle.com/javase/7/docs/api/java/text/SimpleDateFormat.html

  • За "дата" обеспечивает методов gettime() метод, который возвращает количество миллисекунд с ТОЦ, то необходимо дать В класса simpledateformat часовой пояс формат даты правильно согласно вашему часовому поясу, в противном случае он будет использовать часовой пояс по умолчанию для JVM (который, если хорошо настроить, будет так или иначе право)
Комментарии (8)

В Java 8 представляет мгновенный.ofEpochSecond метод программа для создания [МиГ][2] от метку времени Unix, это может тогда быть преобразован в ZonedDateTime и, наконец, форматируется, например:

final DateTimeFormatter formatter = 
    DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss");

final long unixTime = 1372339860;
final String formattedDtm = Instant.ofEpochSecond(unixTime)
        .atZone(ZoneId.of("GMT-4"))
        .format(formatter);

System.out.println(formattedDtm);   // => '2013-06-27 09:31:00'

Я думал, что это может быть полезно для людей, которые используете Java 8.

[2]: https://docs.oracle.com/javase/8/docs/api/java/time/Instant.html на "мгновенный документации и"

Комментарии (2)

Вам нужно преобразовать его в миллисекундах путем умножения метка на 1000:

java.util.Date dateTime=new java.util.Date((long)timeStamp*1000);
Комментарии (1)