java - 将日期和时间与可接受的差异进行比较

标签 java selenium

假设我有 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/

相关文章:

ruby-on-rails - 如何在 Rspec (Selenium) 中设置浏览器窗口大小

java - 使用 Selenium 从 XML 文件填写表单

selenium - 如何在 Chrome 中运行 Selenium WebDriver 测试用例

java - Spring Boot 启动器注解元数据

java - 在并发环境中定义字段

java - 在 tomcat servlet 上使用服务器发送事件进行 gzip/deflate 压缩

javascript - WebdriverIO - 将下拉元素收集到数组中

java - Gradle 构建失败 : Error:Execution failed for task ':app:processDebugResources' . > java.nio.charset.MalformedInputException:输入长度 = 1

java - 内容是否可能发生变化,但 hashcode 仍然为 xml 中的节点返回相同的值

selenium - 机器人框架 : How to retrieve the answer of a request