Java Date Time - LocalDate Example








Example

The following code shows how to create today, tomorrow and yesterday date.

import java.time.LocalDate;
import java.time.temporal.ChronoUnit;
// w w  w.  ja v  a 2 s  .  co m
public class Main {
  public static void main(String... args) {
    LocalDate today = LocalDate.now();
    LocalDate tomorrow = today.plus(1, ChronoUnit.DAYS);
    LocalDate yesterday = tomorrow.minusDays(2);

    System.out.println(today);
    System.out.println(tomorrow);
    System.out.println(yesterday);

  }
}

The code above generates the following result.





Example 2

The following code shows how to parse a string to LocalDate using Medium German format.

import java.time.LocalDate;
import java.time.format.DateTimeFormatter;
import java.time.format.FormatStyle;
import java.util.Locale;
//from   w  w  w.  j  a v  a  2  s.co m
public class Main {
  public static void main(String... args) {
    DateTimeFormatter germanFormatter = DateTimeFormatter.ofLocalizedDate(
        FormatStyle.MEDIUM).withLocale(Locale.GERMAN);

    LocalDate xmas = LocalDate.parse("24.12.2014", germanFormatter);
    System.out.println(xmas); 

  }
}

The code above generates the following result.





Example 3

The following code shows how to get the date of the next pay day.

import java.time.DayOfWeek;
import java.time.LocalDate;
import java.time.Month;
import java.time.Year;
import java.time.format.DateTimeFormatter;
import java.time.temporal.Temporal;
import java.time.temporal.TemporalAdjuster;
import java.time.temporal.TemporalAdjusters;
// w  ww  .j a v a2s .  co  m
public class Main {
  public static void main(String[] args) {
    Month month = null;
    LocalDate date = null;
    DateTimeFormatter format;
    String out = null;

    month = Month.valueOf("May".toUpperCase());
    date = Year.now().atMonth(month).atDay(12);

    LocalDate nextPayday = date.with(new PaydayAdjuster());

    format = DateTimeFormatter.ofPattern("yyyy MMM d");
    out = date.format(format);
    System.out.printf("Given the date:  %s%n", out);
    out = nextPayday.format(format);
    System.out.printf("the next payday: %s%n", out);
  }
}
/**
 * This temporal adjuster assumes that payday occurs on the 15th
 * and the last day of each month. However, if either of those
 * days lands on a weekend, then the previous Friday is used.
 */
 class PaydayAdjuster implements TemporalAdjuster {
    
    /**
     * The adjustInto method accepts a Temporal instance
     * and returns an adjusted LocalDate. If the passed in
     * parameter is not a LocalDate, then a DateTimeException is thrown.
     */
    public Temporal adjustInto(Temporal input) {
        LocalDate date = LocalDate.from(input);
        int day;
        if (date.getDayOfMonth() < 15) {
            day = 15;
        } else {
            day = date.with(TemporalAdjusters.lastDayOfMonth()).getDayOfMonth();
        }
        date = date.withDayOfMonth(day);
        if (date.getDayOfWeek() == DayOfWeek.SATURDAY ||
            date.getDayOfWeek() == DayOfWeek.SUNDAY) {
            date = date.with(TemporalAdjusters.previous(DayOfWeek.FRIDAY));
        }

        return input.with(date);
    }
}
 /*
  * Copyright (c) 2013, Oracle and/or its affiliates. All rights reserved.
  *
  * Redistribution and use in source and binary forms, with or without
  * modification, are permitted provided that the following conditions
  * are met:
  *
  *   - Redistributions of source code must retain the above copyright
  *     notice, this list of conditions and the following disclaimer.
  *
  *   - Redistributions in binary form must reproduce the above copyright
  *     notice, this list of conditions and the following disclaimer in the
  *     documentation and/or other materials provided with the distribution.
  *
  *   - Neither the name of Oracle or the names of its
  *     contributors may be used to endorse or promote products derived
  *     from this software without specific prior written permission.
  *
  * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS
  * IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
  * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
  * PURPOSE ARE DISCLAIMED.  IN NO EVENT SHALL THE COPYRIGHT OWNER OR
  * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
  * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
  * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
  * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
  * LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
  * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
  * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
  */

The code above generates the following result.

Field

  1. LocalDate MAX
  2. LocalDate MIN

Method

  1. LocalDate adjustInto(Temporal temporal)
  2. LocalDate atStartOfDay()
  3. LocalDate atStartOfDay(ZoneId zone)
  4. LocalDate atTime(int hour, int minute)
  5. LocalDate atTime(int hour, int minute, int second)
  6. LocalDate atTime(int hour, int minute, int second, int nanoOfSecond)
  7. LocalDate atTime(LocalTime time)
  8. LocalDate atTime(OffsetTime time)
  9. LocalDate compareTo(ChronoLocalDate other)
  10. LocalDate equals(Object obj)
  11. LocalDate format(DateTimeFormatter formatter)
  12. LocalDate from(TemporalAccessor temporal)
  13. LocalDate getChronology()
  14. LocalDate getDayOfMonth()
  15. LocalDate getDayOfWeek()
  16. LocalDate getDayOfYear()
  17. LocalDate getEra()
  18. LocalDate getLong(TemporalField field)
  19. LocalDate getMonthValue()
  20. LocalDate getMonth()
  21. LocalDate getYear()
  22. LocalDate get(TemporalField field)
  23. LocalDate hashCode()
  24. LocalDate isAfter(ChronoLocalDate other)
  25. LocalDate isBefore(ChronoLocalDate other)
  26. LocalDate isEqual(ChronoLocalDate other)
  27. LocalDate isLeapYear()
  28. LocalDate isSupported(TemporalField field)
  29. LocalDate isSupported(TemporalUnit unit)
  30. LocalDate lengthOfMonth()
  31. LocalDate lengthOfYear()
  32. LocalDate minusDays(long daysToSubtract)
  33. LocalDate minusMonths(long monthsToSubtract)
  34. LocalDate minusWeeks(long weeksToSubtract)
  35. LocalDate minusYears(long yearsToSubtract)
  36. LocalDate minus(long amountToSubtract, TemporalUnit unit)
  37. LocalDate minus(TemporalAmount amountToSubtract)
  38. LocalDate now()
  39. LocalDate now(Clock clock)
  40. LocalDate now(ZoneId zone)
  41. LocalDate ofEpochDay(long epochDay)
  42. LocalDate ofYearDay(int year, int dayOfYear)
  43. LocalDate of(int year, int month, int dayOfMonth)
  44. LocalDate of(int year, Month month, int dayOfMonth)
  45. LocalDate parse(CharSequence text)
  46. LocalDate parse(CharSequence text, DateTimeFormatter formatter)
  47. LocalDate plusDays(long daysToAdd)
  48. LocalDate plusMonths(long monthsToAdd)
  49. LocalDate plusWeeks(long weeksToAdd)
  50. LocalDate plusYears(long yearsToAdd)
  51. LocalDate plus(long amountToAdd, TemporalUnit unit)
  52. LocalDate plus(TemporalAmount amountToAdd)
  53. LocalDate query(TemporalQuery query)
  54. LocalDate range(TemporalField field)
  55. LocalDate toEpochDay()
  56. LocalDate toString()
  57. LocalDate until(ChronoLocalDate endDateExclusive)
  58. LocalDate until(Temporal endExclusive, TemporalUnit unit)
  59. LocalDate withDayOfMonth(int dayOfMonth)
  60. LocalDate withDayOfYear(int dayOfYear)
  61. LocalDate withMonth(int month)
  62. LocalDate withYear(int year)
  63. LocalDate with(TemporalAdjuster adjuster)
  64. LocalDate with(TemporalField field, long newValue)