Java 他们是否有内置的方法来检查android中两个dateTime之间的差异?
我想在android中获得以下输出:Java 他们是否有内置的方法来检查android中两个dateTime之间的差异?,java,android,kotlin,Java,Android,Kotlin,我想在android中获得以下输出: val oldTime = timeStoredInSharedPreference() // format : DD:MM:YYYY HH:MM:SS val newTime = currentTime() // format : DD:MM:YYYY HH:MM:SS val output = newTime - OldTime // Format should be - in minutes or seconds 另外,如何以DD:MM:YYYY
val oldTime = timeStoredInSharedPreference() // format : DD:MM:YYYY HH:MM:SS
val newTime = currentTime() // format : DD:MM:YYYY HH:MM:SS
val output = newTime - OldTime // Format should be - in minutes or seconds
另外,如何以
DD:MM:YYYY HH:MM:SS
格式获取当前时间?因为Java 8,您可以使用LocalDateTime和Duration计算它
LocalDateTime now = LocalDateTime.now();
LocalDateTime sixMinutesBehind = now.minusMinutes(6);
Duration duration = Duration.between(now, sixMinutesBehind);
long diff = Math.abs(duration.toMinutes());
使用Java-9以后的版本,您可以使用和。请注意,
Duration#toMinutes
自Java-8以来一直存在,但是Duration#toSeconds
随Java-9而来,因此如果您使用Java-8,则可以使用而不是Duration#toSeconds
演示:
import java.time.Duration;
import java.time.LocalDateTime;
import java.time.format.DateTimeFormatter;
public class Main {
public static void main(String[] args) {
String strOldDateTime = "24:7:2020 10:10:10";
// Define the format
DateTimeFormatter format = DateTimeFormatter.ofPattern("d:M:yyyy HH:mm:ss");
// Parse date-time as using the defined format
LocalDateTime oldDateTime = LocalDateTime.parse(strOldDateTime, format);
// Now
LocalDateTime now = LocalDateTime.now();
Duration duration = Duration.between(oldDateTime, now);
// Display the difference in minutes and seconds
// ###########Java-8#############
System.out.println(duration.toMinutes() + " minutes " + (duration.toMillis() / 1000) % 60);
// ###########Java-9 onwards#############
System.out.println(duration.toMinutes() + " minutes " + duration.toSeconds() % 60);
}
}
106 minutes 17
106 minutes 17
输出:
import java.time.Duration;
import java.time.LocalDateTime;
import java.time.format.DateTimeFormatter;
public class Main {
public static void main(String[] args) {
String strOldDateTime = "24:7:2020 10:10:10";
// Define the format
DateTimeFormatter format = DateTimeFormatter.ofPattern("d:M:yyyy HH:mm:ss");
// Parse date-time as using the defined format
LocalDateTime oldDateTime = LocalDateTime.parse(strOldDateTime, format);
// Now
LocalDateTime now = LocalDateTime.now();
Duration duration = Duration.between(oldDateTime, now);
// Display the difference in minutes and seconds
// ###########Java-8#############
System.out.println(duration.toMinutes() + " minutes " + (duration.toMillis() / 1000) % 60);
// ###########Java-9 onwards#############
System.out.println(duration.toMinutes() + " minutes " + duration.toSeconds() % 60);
}
}
106 minutes 17
106 minutes 17
什么是
currentTime()
和timestoredinSharedReference()
?这能回答你的问题吗?在Java 8上,您可以使用Duration#getSeocnds
获得与Java 9的Duration#toSeconds
相同的结果。这有点令人困惑。在Java9中,他们似乎已经意识到他们需要与其他toXxx
方法一致地命名方法。感谢Ole V.V.一如既往地提供了宝贵的输入。