我试图将其与字符串进行比较:
开始时间: 10:00结束时间: 12:00
实际上,有一个包含我的值的开始时间数组和一个结束时间数组。在这种情况下,其结构如下:
StartTimes[0] = "10:00"
EndTimes[0] = "12:00"
找出时间间隔的最佳方法(使用java)是什么?开始时间总是在结束时间之前。我应该尝试使用regex按分钟和小时分隔字符串,然后解析小时和解析分钟,比较,然后使用这些信息来确定差异,还是他们在java中比较时间的方法?注意,这些时间是24小时格式的,所以对于一个前人来说。下午1点显示为13点。
发布于 2014-04-24 21:57:25
Java 8中的java.time
我没有现成的计算机来尝试这一点,但是您可能可以在Java8中的新java.time包中执行类似的操作。不要将新的java.time与与Java捆绑在一起的臭名昭著的旧java.util.Date和.Calendar类混为一谈。
LocalTime start = LocalTime.parse( "11:00" );
LocalTime stop = LocalTime.parse( "14:00" );
Duration duration = Duration.between( start, stop );
发布于 2014-04-24 18:34:10
使用拆分方法来拆分2次,并计算和解析从那里开始的持续时间:
示例来自您的问题:
String StartTimes = "10:00";
String EndTimes = "12:00";
String startTimeParse[] = StartTimes.split(":");
String endTimeParse[] = EndTimes.split(":");
int firstHour = Integer.parseInt(startTimeParse[0]);
int firstMinute = Integer.parseInt(startTimeParse[1]);
int secondHour = Integer.parseInt(endTimeParse[0]);
int secondMinute = Integer.parseInt(endTimeParse[1]);
int durattionHour = secondHour - firstHour;
int durattionMinutes = secondMinute - firstMinute;
System.out.println("Duration : " +durattionHour+":"+durattionMinutes );
发布于 2014-04-24 18:34:53
没有这样的方法可以比较。
可以使用“:”拆分时间字符串。然后将小时和分钟解析为整数。然后计算持续时间。
int parseTimeString(String s) {
String[] t = s.split(":");
return Integer.parseInt(t[0]) * 60 + Integer.parseInt(t[1]); // minutes since 00:00
}
int durationInMinute = parseTimeString(EndTimes[0]) - parseTimeString(StartTimes[0]);
https://stackoverflow.com/questions/23283118
复制