我需要有关此字符串格式的帮助:“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/