Java 我怎样才能找出这两次的区别呢?

Java 我怎样才能找出这两次的区别呢?,java,android,date,time,Java,Android,Date,Time,我像这样从服务器获取时间2018-11-27T09:51:31.832107+00:00,然后我解析时间以便OffsetDateTime.parse。我想区分这两个时间OffsetDateTime.now-OffsetDateTime.parse 减法后,我必须以以下形式显示经过的时间:14分12秒。我如何才能正确地获得时间跨度?在android中,您有一种称为“比较”的方法,它可能会帮助您,请参阅此处的文档: 在android中,您有一种称为“比较”的方法,它可能会帮助您,请参阅此处的文档:

我像这样从服务器获取时间
2018-11-27T09:51:31.832107+00:00
,然后我解析时间以便
OffsetDateTime.parse
。我想区分这两个时间
OffsetDateTime.now-OffsetDateTime.parse


减法后,我必须以以下形式显示经过的时间:
14分12秒
。我如何才能正确地获得时间跨度?

在android中,您有一种称为“比较”的方法,它可能会帮助您,请参阅此处的文档:


在android中,您有一种称为“比较”的方法,它可能会帮助您,请参阅此处的文档:


以毫秒为单位转换两次,然后从第一毫秒减去第二毫秒,然后将结果格式化为口头日期

以毫秒为单位转换两次,然后从第一毫秒减去第二毫秒,然后将结果格式化为口头日期

如果您知道如何:

// Parse input.
String timeFromServer = "2018-11-27T09:51:31.832107+00:00";
OffsetDateTime odt = OffsetDateTime.parse(timeFromServer);

// Capture the current moment. 
OffsetDateTime now =  OffsetDateTime.now(ZoneOffset.UTC)

// Get the difference
Duration difference = Duration.between(odt,now);

// Extract details: Convert to minutes and seconds
long minutes = difference.toMinutes();
difference = difference.minusMinutes(minutes);
long seconds = difference.getSeconds();

// Format into string in desired form
String formattedDiff = String.format("%d min %d seconds", minutes, seconds);
System.out.println(formattedDiff);
现在运行时,由于示例字符串来自上个月,我们得到了大量分钟

34613分38秒

唯一棘手的部分是从
Duration
对象中分割出分钟和秒。我先把分钟数取出来,然后减去它们,这样只剩下秒数(以及更小的秒数)。从Java 9开始,
Duration
改进了对获取单个时间单位的支持(请参见
to…Part
方法),但我想您还不能在Android上使用它


当它仅用于计算差异时,传递给
OffsetDateTime的时区或偏移量无关紧要。现在

知道如何传递:

// Parse input.
String timeFromServer = "2018-11-27T09:51:31.832107+00:00";
OffsetDateTime odt = OffsetDateTime.parse(timeFromServer);

// Capture the current moment. 
OffsetDateTime now =  OffsetDateTime.now(ZoneOffset.UTC)

// Get the difference
Duration difference = Duration.between(odt,now);

// Extract details: Convert to minutes and seconds
long minutes = difference.toMinutes();
difference = difference.minusMinutes(minutes);
long seconds = difference.getSeconds();

// Format into string in desired form
String formattedDiff = String.format("%d min %d seconds", minutes, seconds);
System.out.println(formattedDiff);
现在运行时,由于示例字符串来自上个月,我们得到了大量分钟

34613分38秒

唯一棘手的部分是从
Duration
对象中分割出分钟和秒。我先把分钟数取出来,然后减去它们,这样只剩下秒数(以及更小的秒数)。从Java 9开始,
Duration
改进了对获取单个时间单位的支持(请参见
to…Part
方法),但我想您还不能在Android上使用它


当它仅用于计算差异时,传递给
OffsetDateTime的时区或偏移量无关紧要。现在

您搜索/尝试了什么吗?@OleV.V。减法后,我必须以这种形式显示时间
14分12秒
由于增加了精度,它使回答问题变得容易多了。添加信息时,请在问题本身中添加信息,以便我们将所有信息都放在一个位置(这次是我为您添加的)。您搜索/尝试了什么吗?@OleV.V。减法后,我必须以这种形式显示时间
14分12秒
由于增加了精度,它使回答问题变得容易多了。当添加信息时,请在问题本身中这样做,以便我们将所有信息都放在一个地方(这次我是为你做的)。这不是个好主意。找出差异的方法是内置的。为什么你说这是一个坏主意?以帮助读者获得可能是一个好主意的印象。可能有一些内置的功能,但在那之后,我认为这也是一个不错的主意。因为内置的功能和上面一样,这是个坏主意。找出差异的方法是内置的。为什么你说这是一个坏主意?以帮助读者获得可能是一个好主意的印象。可能有一些内置的功能,但在那之后,我认为这也是一个不错的主意。因为内置的功能和上面一样。谢谢你的回答谢谢你的回答