【问题标题】:Parse negative time String in java在java中解析负时间字符串
【发布时间】:2026-02-23 21:55:01
【问题描述】:

我有一个 selenium 脚本来比较负时间和正时间,比如 -01:07 和正格式 +00:34+00:00,它们是字符串格式。我想根据 + 或 - 号在负时间或正时间解析这个时间,并想比较它是在负时间之后还是之前与负数

目前我正在这样做

Date late = (Date) format.parse("05:00");
Date ontime = (Date) format.parse("00:00");
Date early = (Date) format.parse("00:59");

SimpleDateFormat format = new SimpleDateFormat("HH:mm");
String myTime = propertyConfig.getString("myTime");
//Here myTime = -00:47
org.junit.Assert.assertTrue(format.parse(myTime).after(early) && format.parse(myTime).before(late));

我不确定我们是否可以在 java 中解析负时间。有人可以帮忙吗?

谢谢

【问题讨论】:

    标签: java parsing selenium time


    【解决方案1】:

    我不相信您可以直接尝试这样做,您必须对字符串进行一些手动解析,然后执行一些操作。我建议使用 JodaTime 库来满足您的日期/时间操作需求,它提供了许多标准 Date 类没有的有用功能。

    一个对您特别有用的函数是DateTime 类,其中有一些方法可以加减时间单位(年、分、秒等)

    http://joda-time.sourceforge.net/apidocs/org/joda/time/DateTime.html

    在您的代码中,您可以查看字符串中的第一个字符以确定您是要加还是减。然后从该字符串中提取时间测量值并将其传递给DateTime 类的适当加/减方法

    【讨论】:

    • 感谢您的建议。会调查的。