Search code examples
javalocaldate

Subtract two dates in dd-MMM-yy HH:mm format


The date looks like:

25/apr/18 10:24 AM

Here's the code I'm trying to use

DateTimeFormatter dtf = DateTimeFormatter.ofPattern("dd-MMM-yy HH:mm");
LocalDate open = LocalDate.parse(openTime.toString(), dtf);
LocalDate now = LocalDate.now();
now = dtf.format(now); // <-- Can't do this as it's apparently a string and not a LocalDate
elapsedDays = ChronoUnit.DAYS.between(now, open)

Solution

  • First of all your pattern needs to support AM/PM judging from your example and secondly, you don't need to parse now since you want to use it as a LocalDate instance.

    String input = "22/Apr/18 10:24 AM";
    DateTimeFormatter dtf = DateTimeFormatter.ofPattern("dd/MMM/yy hh:mm a", Locale.ENGLISH);
    LocalDate open = LocalDate.parse(input, dtf);
    LocalDate now = LocalDate.now();
    
    long diff = ChronoUnit.DAYS.between(open, now);