Java JodaTime::toDate返回不同的日期

Java JodaTime::toDate返回不同的日期,java,date,jodatime,Java,Date,Jodatime,我遇到了一点小麻烦。我写了一些代码和测试。我必须在一些对象中检查操作日期,然后我创建了一些测试数据,如下所示: task.setPlannedTime( DateTimeFormat.forPattern("MM/dd/yyyy HH:mm:ss") .parseDateTime("4/27/2018 08:00:00") .toDate()); 我还有一些类似的任务。这些是存根数据,当调用某个方法时将返回这些数据,更不用说,点就在附

我遇到了一点小麻烦。我写了一些代码和测试。我必须在一些对象中检查操作日期,然后我创建了一些测试数据,如下所示:

task.setPlannedTime(
          DateTimeFormat.forPattern("MM/dd/yyyy HH:mm:ss")
          .parseDateTime("4/27/2018 08:00:00")
          .toDate());
我还有一些类似的任务。这些是存根数据,当调用某个方法时将返回这些数据,更不用说,点就在附近

测试代码是对这些任务列表的排序。然后我在测试中检查这些数据是否正确排序。我使用与前面相同的语句来创建要比较的日期。(我使用TestNG)。测试方法如下所示:

testSmth() {
    setupMockData(getStubbedTaskList()); // get stubbed data and then just some mocking
    handler.doSomething();
    List<Task> tasks = getCapturedTasks();
    //and here I want to check if the first element has correct date
    assertEquals(
              tasks.get(0).getPlanendDate(), 
              DateTimeFormat.forPattern("MM/dd/yyyy HH:mm:ss")
                     .parseDateTime("4/27/2018 08:00:00")
                     .toDate()
    );
}
testSmth(){
setupMockData(getStubbedTaskList());//获取存根数据,然后进行一些模拟
handler.doSomething();
列出任务=getCapturedTasks();
//这里我想检查第一个元素是否有正确的日期
资产质量(
tasks.get(0.getPlanendDate(),
模式的日期时间格式(“MM/dd/yyyy HH:MM:ss”)
.parseDateTime(“2018年4月27日08:00:00”)
.toDate()
);
}
getStubbedData
是一种返回存根任务列表的方法 与第一个代码列表中的日期不同

关键是它有效。我使用maven和IDEA test runner在本地运行测试。一切都很好。但一旦它出现在CI/CD上(我们使用Jenkins),我就得到了一个失败的构建

原因很奇怪。当我创建测试数据(如CI/CD上的第一个代码列表)时,日期总是
Fri Apr 27 01:00:00
。但是,在断言语句中,日期已正确创建
Fri Apr 27 08:00:00
。我得到了一个断言错误,因为预期的日期是
Fri Apr 27 08:00:00
,而实际的日期是
Fri Apr 27 01:00:00

我的意思是,断言和存根的两个日期在同一个类中以相同的方式在同一个测试方法中创建。但是对于存根数据来说,所有的日期都被解析成了奇怪的东西。怎么可能呢?这看起来不像是时区之类的典型问题

每一个声音都被欣赏。我真的很感激你的任何想法。 谢谢

附言: 我不认为因为时区的原因,每个日期都是一样的:
Fri Apr 27 01:00:00
当我为
08:00:00
创建时,我为
13:00:00
创建时都是一样的,依此类推。
附言:Java 7…

幕后发生了一些事情。请创建一个复制该问题的自包含代码,因为您现在发布的代码不足以复制该问题。如果您尝试另一个日期,您是否仍然在该日期获得4月27日星期五01:00:00或01:00或其他信息?同意@ErwinBolwidt的说法,我们没有发现问题所需的信息。@ErwinBolwidt不幸的是,我不能很快做到这一点,因为这是一个大公司项目,代码我无法共享。无论如何,谢谢你的回复。我通过避开JodaTime解决了这个问题。对于不同版本的JDK,这一点是不可预测的。我有1.7_80,CI/CD使用1.7_51运行。而使用1.751的同事在局部也会得到同样的错误。我刚刚删除了这里所有的jodatime代码。