字符串到本地日期java.time

2022-08-31 08:20:36

如何将字符串转换为?LocalDate

我看过这样的例子:

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

但我的字符串是这样的:

2005-nov-12

答案 1

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);

语法几乎相同。


答案 2

当您使用Joda Time时,您应该使用:DateTimeFormatter

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

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


推荐