Using the parseBest( ) Method of the DateTimeFormatter Class - Java Date Time

Java examples for Date Time:Date Time Format

Description

Using the parseBest( ) Method of the DateTimeFormatter Class

Demo Code

import java.time.LocalDate;
import java.time.LocalDateTime;
import java.time.OffsetDateTime;
import java.time.format.DateTimeFormatter;
import java.time.format.DateTimeParseException;
import java.time.temporal.TemporalAccessor;

public class Main {
  public static void main(String[] args) {
    DateTimeFormatter parser = DateTimeFormatter.ofPattern("yyyy-MM-dd['T'HH:mm:ss[Z]]");
    parseStr(parser, "2019-05-31");
    parseStr(parser, "2019-05-31T16:30:12");
    parseStr(parser, "2019-05-31T16:30:12-0500");
    parseStr(parser, "2019-05-31Hello");
  }/*w  ww  .  j  a va 2  s  .  c o m*/

  public static void parseStr(DateTimeFormatter formatter, String text) {
    try {
      TemporalAccessor ta = formatter.parseBest(text, 
                                                OffsetDateTime::from, 
                                                LocalDateTime::from, 
                                                LocalDate::from);
      if (ta instanceof OffsetDateTime) {
        OffsetDateTime odt = OffsetDateTime.from(ta);
        System.out.println("OffsetDateTime: " + odt);
      } else if (ta instanceof LocalDateTime) {
        LocalDateTime ldt = LocalDateTime.from(ta);
        System.out.println("LocalDateTime: " + ldt);
      } else if (ta instanceof LocalDate) {
        LocalDate ld = LocalDate.from(ta);
        System.out.println("LocalDate: " + ld);
      } else {
        System.out.println("Parsing returned: " + ta);
      }
    } 
    catch (DateTimeParseException e) {
      System.out.println(e.getMessage());
    }
  }
}

Related Tutorials