Конвертировать время Unix в удобочитаемую дату в Java - PullRequest
9 голосов
/ 08 ноября 2011

Какой самый простой способ сделать это на Java?В идеале я буду использовать время Unix в миллисекундах в качестве входных данных, и функция выведет строку типа

7 ноября 2011 года в 17:00

Ответы [ 3 ]

19 голосов
/ 08 ноября 2011
SimpleDateFormat sdf = new SimpleDateFormat("MMMM d, yyyy 'at' h:mm a");
String date = sdf.format(myTimestamp);
3 голосов
/ 30 июня 2013

Я хотел преобразовать мои unix_timestamps, например 1372493313, в читаемый человеком формат, например, 29 июня 4: 08.

Ответ выше помог мне в коде моего приложения для Android. Небольшое отличие заключалось в том, что на Android он также рекомендует использовать настройки локали, а мой оригинальный unix_timestamp был в секундах, а не в миллисекундах, и Eclipse хотел добавить блок try / catch или исключение throw. Поэтому мой рабочий код должен быть изменен примерно так:

/**
 * 
 * @param unix_timestamp
 * @return
 * @throws ParseException 
 */
private String unixToDate(String unix_timestamp) throws ParseException {    
    long timestamp = Long.parseLong(unix_timestamp) * 1000;

    SimpleDateFormat sdf = new SimpleDateFormat("MMM d H:mm", Locale.CANADA);
    String date = sdf.format(timestamp);

    return date.toString();
}

А вот и телефонный код:

String formatted_timestamp;
try {
        formatted_timestamp = unixToDate(unix_timestamp); // timestamp in seconds
    } catch (ParseException e) {
        e.printStackTrace();
    }
0 голосов
/ 07 октября 2016
java.util.Date date = new java.util.Date((long) time * 1000L);

SimpleDateFormat simpleDateFormat = new SimpleDateFormat(pattern);

simpleDateFormat.setTimeZone(TimeZone.getTimeZone("UTC"));
...