这是一个奇怪的问题。我的基于 Joda DateTimeFormatter 的解析器可以完美运行,除非它由 Jenkins 运行。我什至可以以 jenkins 用户身份登录 jenkins,并成功运行测试。
private static final DateTimeFormatter TIMESTAMP_FORMAT =
DateTimeFormat.forPattern("HH:mm:ss.SSS MMM dd yyyy");
public static DateTime datetime(String timeStamp, String timeZone) {
return TIMESTAMP_FORMAT.withZone(DateTimeZone.forID(timeZone))
.parseDateTime(timeStamp)
.withZone(DateTimeZone.UTC);
}
@Test public void getDatetime() {
assertEquals(new DateTime("2013-01-01T00:35:18.146Z")
.withZone(DateTimeZone.UTC), datetime("00:35:18.146 JAN 01 2013", "GMT"));
}
当由 Jenkins 运行时,我得到:
java.lang.IllegalArgumentException:无效格式:“00:35:18.146 JAN 01 2013”在“JAN 01 2013”格式错误