我想在 Java 中将 long int 值转换为 HH:MM 格式

I want to convert long int values into HH:MM format in Java

我已经突出显示了我从代码中获得的 int 值。给出了实际值。我想编写代码将这些长整数值转换为 HH:MM 格式。

真正的问题是你我都不明白这里需要进行哪种转换。我无法为你解决这个问题。不过,我想分享一个想法,它可能会对您有所帮助。

    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

我假设 long 值表示自纪元以来的毫秒数,这很常见。与Asia/Kabul和Asia/Tehran时区的当地时间一致,不知道有没有其他时区可能适合。

如果这个解释成立,我们将不得不假设另一个值存在错误。我找不到该值适合 05:00 时间的时区。此外,如果这些值属于不同的时区,除非它们告诉您它们属于哪个时区,否则您没有机会。

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;
}

这给了我答案,但有一两分钟的变化