假设我有 2 个包含日期的字符串,如下所示
String A = 25 Nov 2015 10.50 GMT+6
String B = 25 Nov 2015 10.45 GMT+6
如何才能使两个日期字符串之间存在几分钟的差异是可以接受的?我无法使用 Selenium 在两个字符串之间进行断言,因为它肯定会引发断言错误。
最佳答案
解析字符串,然后比较毫秒并应用阈值。
但首先,您必须修复那些错误的 GMT 偏移。
String a = "25 Nov 2015 10.50 GMT+6";
String b = "25 Nov 2015 10.45 GMT+6";
// fix bad GMT
a = a.replaceFirst(" GMT\\+(\\d)\\b", " GMT+0$1");
b = b.replaceFirst(" GMT\\+(\\d)\\b", " GMT+0$1");
// parse dates
SimpleDateFormat datefmt = new SimpleDateFormat("d MMM yyyy HH.mm 'GMT'X");
Date dateA = datefmt.parse(a);
Date dateB = datefmt.parse(b);
// detect difference
long diffInMillis = Math.abs(dateA.getTime() - dateB.getTime());
if (diffInMillis < 5 * 60 * 1000) {
// all is good
} else {
// bad: 5 or more minutes apart
}
关于java - 将日期和时间与可接受的差异进行比较,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34012187/