gpt4 book ai didi

Java - DateTimeFormatter - ParseException

转载 作者:太空宇宙 更新时间:2023-11-04 11:48:25 26 4
gpt4 key购买 nike

我遇到了一个非常奇怪的问题,一小段代码在一台机器上运行,而不是在另一台机器上运行。这段代码:

    DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MMM-dd");
Map<LocalDate, Double> temperatur = new TreeMap<>();
for (LocalDate currentDate = LocalDate.parse("2014-jan-01", formatter); currentDate.getYear() < 2015; currentDate = currentDate.plusDays(1))
{
String date = currentDate.toString();
int stringIndex = (data.indexOf(date));
String tempString = data.substring((stringIndex + 31), (stringIndex + 35));
if(tempString.contains(";"))
tempString = tempString.substring(0, 3);
double temp = Double.parseDouble(tempString);
temperatur.put(currentDate, temp);
}

给了我异常(exception):

Exception in thread "main" java.time.format.DateTimeParseException: Text '2014-jan-01' could not be parsed at index 5
at java.time.format.DateTimeFormatter.parseResolved0(Unknown Source)
at java.time.format.DateTimeFormatter.parse(Unknown Source)
at java.time.LocalDate.parse(Unknown Source)
at main.SMHITest.getValues(SMHITest.java:50)
at main.DataCollectionBuilder.addToResult(DataCollectionBuilder.java:46)
at main.DataCollectionBuilder.<init>(DataCollectionBuilder.java:25)
at main.ClientProgram.main(ClientProgram.java:14)

SMHITest.Java:50 行正如您可能猜到的那样,位于 for 循环中。奇怪的是,这段代码在一台计算机上运行良好,但在我家里却无法运行。两台机器都运行 Eclipse mars jee,但一台机器(工作的地方)运行 java 1.8.0_112,另一台机器运行 java 1.8.0_121-b13。但我无法想象这会是问题所在?

最佳答案

抛出错误是因为给定的日期“2014-jan-01”与格式yyyy-MMM-dd不匹配。必须是2014-Jan-01

不确定您想在下面实现什么目标,

String tempString = data.substring((stringIndex + 31), (stringIndex + 35));

if(tempString.contains(";"))

日期 2014-01-0 不包含“;”或长度为 35 个字符。

关于Java - DateTimeFormatter - ParseException,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42078310/

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