一尘不染

字符串到LocalDate

java

我如何将字符串转换为LocalDate

我看过类似的例子:

LocalDate dt = new LocalDate("2005-11-12");

但是我的字符串就像:

2005-nov-12

阅读 320

收藏
2020-09-08

共1个答案

一尘不染

使用Joda Time时,应使用DateTimeFormatter

final DateTimeFormatter dtf = DateTimeFormatter.ofPattern("yyyy-MMM-dd");
final LocalDate dt = dtf.parseLocalDate(yourinput);

如果使用Java 8或更高版本,请参考hertzi的答案

java.time
从Java 1.8开始,您可以使用java.time类而无需额外的库来实现此目的。请参阅教程。

DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MMM-dd");
formatter = formatter.withLocale( putAppropriateLocaleHere );  // Locale specifies human language for translating, and cultural norms for lowercase/uppercase and abbreviations and such. Example: Locale.US or Locale.CANADA_FRENCH
LocalDate date = LocalDate.parse("2005-nov-12", formatter);
2020-09-08