gpt4 book ai didi

java - 返回时间(分钟)

转载 作者:行者123 更新时间:2023-12-01 13:13:33 24 4
gpt4 key购买 nike

我试图使用以下代码在几分钟内找到两次之间的差异。未提供完整的代码:

   String dateStart = "03/25/2014 18:03:00";

String dateStop = "03/25/2014 19:45:00";


SimpleDateFormat format = new SimpleDateFormat("MM/dd/yyyy HH:mm:ss");

Date d1 = null;

Date d2 = null;



d1 = format.parse(dateStart);

d2 = format.parse(dateStop);


long diff = endDate.getTime()-startDate.getTime();

long minutes = diff/(60*1000) % 60;

不知道为什么返回时间为 14 分钟。相反,102 分钟。

问候,柴图

最佳答案

乔达时间

Joda-Time ,使用Minutes类(class)。基本上是一行代码,调用 minutesBetween

示例代码

这里是 Joda-Time 2.3 中的一些示例代码。

解析这些字符串

DateTimeZone timeZone = DateTimeZone.forID( "Europe/Paris" );
DateTimeFormatter formatter = DateTimeFormat.forPattern( "MM/dd/yyyy HH:mm:ss" ).withZone( timeZone );
DateTime start = formatter.parseDateTime( "03/25/2014 18:03:00" );
DateTime stop = formatter.parseDateTime( "03/25/2014 19:45:00" );

计算之间的分钟

int minutes = Minutes.minutesBetween( start, stop ).getMinutes();

ISO 持续时间(周期)

或者您可能想在 ISO 8601 中生成一个字符串Durations 的格式:PnYnMnDTnHnMnS。要在 Joda-Time 中执行此操作,请使用 Period类(是的,日期时间术语没有标准化,不同的人使用不同的方式)。

Period period = new Period( start, stop );
String output = period.toString();

结果

转储到控制台...

System.out.println( "start: " + start );
System.out.println( "stop: " + stop );
System.out.println( "minutes: " + minutes );
System.out.println( "period: " + period );

运行时...

start: 2014-03-25T18:03:00.000+01:00
stop: 2014-03-25T19:45:00.000+01:00
minutes: 102
period: PT1H42M

PT1H42M 的输出表示“一小时四十二分钟”。

时区

您的问题和代码忽略了解析这些字符串时时区的关键问题。您几乎应该始终指定时区。

java.time

Java 8 中的新 java.time 包可能具有与您在 Joda-Time 中看到的类似的功能。

关于java - 返回时间(分钟),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22645787/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com