如何解决本地时间直到那时格式
想知道如何使用两个不同的 long 来格式化本地时间的输出: 我的目标是用直到部分格式化长分钟和长秒
所需输出的示例: 9:02 如9分2秒
public static String getTimeUntilSomething() {
LocalTime currentTime = LocalTime.now();
long minutes = currentTime.until(currentTimeMore,ChronoUnit.MINUTES);
long seconds = currentTime.until(currentTimeMore,ChronoUnit.SECONDS);
String L = currentTime.format(DateTimeFormatter.ofPattern("m:ss"));
return L;
}
解决方法
我建议您使用 java.time.Duration
来执行此操作,它以 ISO-8601 standards 为模型,并作为 JSR-310 implementation 的一部分与 Java-8 一起引入。 Java-9 引入了一些更方便的方法。
演示:
import java.time.Duration;
import java.time.LocalTime;
class Main {
public static void main(String[] args) {
// Test
System.out.println(getTimeUntilSomething(LocalTime.of(21,10,20)));
}
public static String getTimeUntilSomething(LocalTime currentTimeMore) {
LocalTime currentTime = LocalTime.now();
Duration duration = Duration.between(currentTime,currentTimeMore);
// ####################################Java-8####################################
return String.format("%2d:%02d",duration.toMinutes(),duration.toSeconds() % 60);
// ##############################################################################
// ####################################Java-9####################################
// return String.format("%d:%02d",duration.toSecondsPart());
// ####################################Java-9####################################
}
}
示例运行:
94:40
,
鉴于您在评论中所说的,我认为您可以使用 String.format()
,如下所示:
public static String getTimeUntilSomething() {
LocalTime currentTime = LocalTime.now();
long minutes = currentTime.until(currentTimeMore,ChronoUnit.MINUTES);
long seconds = currentTime.until(currentTimeMore,ChronoUnit.SECONDS);
String L = String.format("%d:%02d",minutes % 60,seconds % 60);
return L;
}
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。