Java 他们是否有内置的方法来检查android中两个dateTime之间的差异?

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

我想在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 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.一如既往地提供了宝贵的输入。