java - 比较数值范围内的字符串 - Java

标签 java string

我需要有关此字符串格式的帮助:“08/13/2015 10:03:50”

我想比较2分钟范围内的时间。我对正则表达式有一定的了解,但是当时间为字符串格式并且跨越到另一个小时时,我不知道如何解决这个问题,(例如 10:59:30 会重叠到 11:01:30 而不是 10: 61:30)。

代码应该是这样的

string1 = "08/13/2015 10:03:50";
string2 = "08/13/2015 10:05:50, 08/13/2015 10:55:50, 08/13/2015 10:15:50, 
            08/13/2015 10:14:50, 08/13/2015 10:25:50, 08/13/2015 10:55:50";

if(string2.contains("string1(with plus or minus 2 of string1 min)"){
   //Pass
}

我用来获取日期的代码

DateFormat dateFormat = new SimpleDateFormat("MM/dd/yyyy HH:mm:ss");
Calendar cal = Calendar.getInstance();
String timeOfUpdate = dateFormat.format(cal.getTime());
System.out.println(timeOfUpdate);

最佳答案

按照评论中的建议将Strings 解析为Date,然后通过getTime() method 检索两个Date 对象的时间戳。 .将这两个数字彼此相减。这会为您提供这些时间的时间间隔(以毫秒为单位),您可以将其与转换为毫秒的标准进行比较。

更新 关于日期列表附录:要评估包含日期列表的字符串,您必须使用 String#split() 沿列表分隔符将字符串拆分为字符串数组。 .

然后,您可以将每个子字符串解析为一个 Date 对象,并按照第一段中提到的#getTime() 方法检索每个子字符串的时间戳。将这些时间戳收集到列表中。

可以搜索此列表以查找预期范围内的条目,例如使用 Stream API's filter function (Java 8 及更新版本)。这是一个简短的 tutorial关于那个功能。

关于java - 比较数值范围内的字符串 - Java,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31990980/

相关文章:

java - 将 m.group(1) 转换为字符串数组

java - Glassfish服务器: How to get name of application deployment from inside glassfish application?

java - 如何获取 android 命名空间中的所有类?

javascript - 什么是 WOPI 操作 URL?

java - 更新 Eclipse RCP 项目中零件中的 TableView 的正确方法是什么?

c - 从所有数组元素打印字符串

java - java if 语句帮助

php - 添加 ... 如果字符串太长 PHP

c# - 在 C# 中将字符串转换为 double

java - 为什么这行得通? Java 正在四舍五入吗?