gpt4 book ai didi

java - Joda DateTimeFormatter 仅在由 Jenkins 运行时失败

转载 作者:行者123 更新时间:2023-11-30 04:25:25 25 4
gpt4 key购买 nike

这很奇怪。我的基于 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: Invalid format: "00:35:18.146 JAN 01 2013" is malformed at "JAN 01 2013"

最佳答案

这似乎是一个区域设置问题。如果默认语言环境不是英语,它将抛出此类异常。请检查 Jenkins 默认区域设置。

顺便说一句,您还可以更改代码:将 withLocale(Locale.ENGLISH) 添加到格式化程序。

public static DateTime datetime(String timeStamp, String timeZone) {
return TIMESTAMP_FORMAT.withZone(DateTimeZone.forID(timeZone))
.withLocale(Locale.ENGLISH)
.parseDateTime(timeStamp)
.withZone(DateTimeZone.UTC);
}

关于java - Joda DateTimeFormatter 仅在由 Jenkins 运行时失败,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16011300/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com