【发布时间】:2021-10-19 01:36:37
【问题描述】:
我一直在做一个需要我以这种方式解析字符串的项目 我已经分离出了一直抛出错误的小部分,
import java.time.YearMonth;
import java.time.format.DateTimeFormatter;
public class TestingYearMonth {
public static void main(String[] args) {
YearMonth yearMonth = YearMonth.parse("Feb-17", DateTimeFormatter.ofPattern("MMM-yy"));
System.out.println(yearMonth.getMonth() + " " + yearMonth.getYear());
}
}
我的老师运行完全相同的代码,它返回的输出没有问题。但是当我运行它时,我收到以下错误
Exception in thread "main" java.time.format.DateTimeParseException: Text 'Feb-17' could not be parsed at index 0
at java.base/java.time.format.DateTimeFormatter.parseResolved0(DateTimeFormatter.java:2046)
at java.base/java.time.format.DateTimeFormatter.parse(DateTimeFormatter.java:1948)
at java.base/java.time.YearMonth.parse(YearMonth.java:295)
at com.ethanbradley.assignment6.TestingYearMonth.main(TestingYearMonth.java:10)
我们检查过,我的 jdk 没问题(jdk 11,amazon coretto 版本) 我真的不明白为什么这不起作用,请帮助哦聪明的互联网人....
【问题讨论】:
-
你机器的
Locale是什么? -
试试
.ofPattern("MMM-yy", Locale.US) -
哇,添加 Locale.US 有效,但似乎没有其他 Locale,你知道为什么吗?
-
@EthanLTB 不同的语言环境对月份值的生成/解析方式有不同的要求,例如,有些可能是
FEB(不包括非英语语言)
标签: java parsing java-11 java-time