String to LocalDate

Jak mogę przekonwertować łańcuch znaków na LocalDate?

Widziałem przykłady takie jak:

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

Ale moje struny są takie:

2005-nov-12
Author: adarshr, 2012-01-05

4 answers

Jak używasz czasu Joda, powinieneś użyć DateTimeFormatter:

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

Jeśli używasz Javy 8 lub nowszej, zapoznaj się z odpowiedzią

 65
Author: fge,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2018-08-14 12:28:16

Java.czas

Od wersji Java 1.8 można to osiągnąć bez dodatkowej biblioteki, używając java.czas klasy. Zobacz Tutorial .

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);
Składnia jest prawie taka sama.
 144
Author: hertzi,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2018-04-10 05:29:11

Być może będziesz musiał przejść z DateTime do LocalDate.

DateTimeFormatter FORMATTER = DateTimeFormat.forPattern("yyyy-MMM-dd");
DateTime dateTime = FORMATTER.parseDateTime("2005-nov-12");
LocalDate localDate = dateTime.toLocalDate();
 12
Author: Spencer Kormos,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2012-01-05 16:40:57

Formatowanie Datetime jest wykonywane przez org.joda.time.format.DateTimeFormatter class. Trzy klasy zapewniają fabryczne metody tworzenia formaterów , i jest to jedna z nich. Pozostałe to ISODateTimeFormat i DateTimeFormatterBuilder.

DateTimeFormatter format = DateTimeFormat.forPattern("yyyy-MMM-dd");
LocalDate lDate = new LocalDate().parse("2005-nov-12",format);

final org.joda.time.LocalDate class jest niezmienną klasą datetime reprezentującą datę bez strefy czasowej . LocalDate jestwątek bezpieczny i niezmienny , pod warunkiem, żeChronologia jest również. Wszystkie dostarczane standardowe klasy chronologii są bezpieczne i niezmienne.

 6
Author: Chandra Sekhar,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2012-01-05 17:12:01