This question already has an answer here:
Generate & parse “Year-Month” values in text from Java
                                
                                    (1个答案)
                                
                        
                3年前关闭。
            
        

我有一个变量:

YearMonth date;


例如,位于内部的"2016-07"

我希望它仍然是YearMonth,但是使用"2016 july"(注意,没有“-”分隔符),或者更好的是,使用"2016 luglio",这是意大利语Locale。

怎么做?

更新

我尝试了JackDaniels的方法。它实际上可以工作,因为它为我提供了具有正确日期格式的字符串(str)。但我需要将该字符串再次放入YearMonth变量中。我尝试过:

myVariable = YearMonth.parse(str);


但它返回了一个错误:java.time.format.DateTimeParseException: Text '2014 gennaio' could not be parsed at index 4

我该如何解决?

最佳答案

使用新的DateTimeFormatter直接解析YearMonth并设置其格式,并使用Locale设置所需的语言环境。
不要使用SimpleDateFormat。那是旧的Date API的一部分。

尝试运行代码,看看这是否是您在Codiva online compiler IDE中想要的。

YearMonth yearMonth = YearMonth.of(2016, 7);
DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy MMMM",
    new Locale("it", "IT"));
System.out.println(yearMonth.format(formatter));


Codiva中的完整工作代码。

09-30 17:59