首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >字符串中的两次比较

字符串中的两次比较
EN

Stack Overflow用户
提问于 2014-04-25 02:19:15
回答 5查看 36.5K关注 0票数 8

我试图将其与字符串进行比较:

开始时间: 10:00结束时间: 12:00

实际上,有一个包含我的值的开始时间数组和一个结束时间数组。在这种情况下,其结构如下:

代码语言:javascript
代码运行次数:0
运行
复制
 StartTimes[0] = "10:00"
 EndTimes[0] = "12:00"

找出时间间隔的最佳方法(使用java)是什么?开始时间总是在结束时间之前。我应该尝试使用regex按分钟和小时分隔字符串,然后解析小时和解析分钟,比较,然后使用这些信息来确定差异,还是他们在java中比较时间的方法?注意,这些时间是24小时格式的,所以对于一个前人来说。下午1点显示为13点。

EN

回答 5

Stack Overflow用户

发布于 2014-04-25 05:57:25

Java 8中的java.time

我没有现成的计算机来尝试这一点,但是您可能可以在Java8中的新java.time包中执行类似的操作。不要将新的java.time与与Java捆绑在一起的臭名昭著的旧java.util.Date和.Calendar类混为一谈。

代码语言:javascript
代码运行次数:0
运行
复制
LocalTime start = LocalTime.parse( "11:00" );
LocalTime stop = LocalTime.parse( "14:00" );
Duration duration = Duration.between( start, stop );
票数 5
EN

Stack Overflow用户

发布于 2014-04-25 02:34:10

使用拆分方法来拆分2次,并计算和解析从那里开始的持续时间:

示例来自您的问题:

代码语言:javascript
代码运行次数:0
运行
复制
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 );
票数 1
EN

Stack Overflow用户

发布于 2014-04-25 02:34:53

没有这样的方法可以比较。

可以使用“:”拆分时间字符串。然后将小时和分钟解析为整数。然后计算持续时间。

代码语言:javascript
代码运行次数:0
运行
复制
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]);
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/23283118

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档