我想在 Java 中将 long int 值转换为 HH:MM 格式
I want to convert long int values into HH:MM format in Java
- -1800000 -
04:00
- -19800000 -
05 : 00
我已经突出显示了我从代码中获得的 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;
}
这给了我答案,但有一两分钟的变化
- -1800000 -
04:00
- -19800000 -
05 : 00
我已经突出显示了我从代码中获得的 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;
}
这给了我答案,但有一两分钟的变化