Я хочу преобразовать длинные значения int в формат ЧЧ: ММ в Java - PullRequest
0 голосов
/ 21 мая 2018
  • -1800000 - 04:00
  • -19800000 - 05 : 00

Я выделил интзначения, которые я получаю из кода.Фактические значения приведены.Я хочу написать код для преобразования этих длинных целочисленных значений в формат HH:MM.

Ответы [ 2 ]

0 голосов
/ 22 мая 2018
public static String getDate(long time) {
    Calendar cal = Calendar.getInstance(Locale.ENGLISH);
    cal.setTimeInMillis(time);
    SimpleDateFormat month_date = new SimpleDateFormat("HH:MM");
    String date = month_date.format(cal.getTime()).toString();
    System.out.println(date);
    return date;
}

Это даст мне ответ, но есть разница в одну или две минуты

0 голосов
/ 21 мая 2018

Настоящая проблема в том, что ни вы, ни я не понимаем, какое преобразование здесь ожидается.Я не могу решить это для вас.Я хотел бы поделиться мыслью, хотя, возможно, это может немного помочь вам в пути.

    DateTimeFormatter timeFormatter = DateTimeFormatter.ofPattern("HH:mm");

    long longValue = -1_800_000;
    String formattedTime = Instant.ofEpochMilli(longValue)
            .atZone(ZoneId.of("Asia/Kabul"))
            .format(timeFormatter);
    System.out.println(formattedTime);

Это печатает ожидаемое.

04:00

Я предполагаю, что длинное значение обозначает миллисекунды с эпохи, это было бы очень распространенным явлением.Это согласуется с местным временем в часовых поясах Азии / Кабула и Азии / Тегерана, я не знаю, есть ли другие часовые пояса, которые могут соответствовать.

Если это объяснение будет выполнено, нам придется предположить,что есть ошибка в другом значении, хотя.Я не смог найти часовой пояс, в котором это значение соответствовало бы времени 05:00.Кроме того, если значения принадлежат разным часовым поясам, у вас не будет шансов, если они не сообщат, в каких часовых поясах они находятся.

...