Advanced Java Programming
Topic: Date Time API
By
Arvind Kumar
Asst. Professor, LPU
Contents
Objective of DateTime API
LocalDate
LocalTime
LocalDateTime
Instant
Period
Duration
Time zones
Objectives of DateTime API
Creating and manage date-based events, Creating and manage
time-based events.
Combining date and time into a single object.
Working with dates and times across time zones.
Managing changes resulting from daylight savings.
Defining and create timestamps, periods and durations.
Applying formatting to local and zoned dates and times
LocalDate Class
Working with LocalDate
LocalDate is a class that holds an event date: a birth date,
anniversary, meeting date and so on.
A date is label for a day.
LocalDate uses ISO calendar by default.
LocalDate does not uses time so its portable across time zones.
LocalDate, LocalTime and LocalDateTime
They are local in the sense that they represent date and time
from the context of one observer, in contrast to time zones.
All the core classes in the new API are constructed by
factory methods.
When constructing a value through its fields, the factory is
called of.
There are also parse methods that take strings as parameters:
LocalDate
Methods
public static LocalDate now()
public static LocalDate now(ZoneID id)
public static LocalDate of(int year, Month month, int
dayOfMonth)
public static LocalDate of(int year, int month, int dayOfMonth)
public static LocalDate ofEpochDay(long epochDay)
public static LocalDate parse(CharSequence text)
LocalDate
Methods
public int getYear()
public int getMonthValue()
public Month getMonth()
public int getDayOfMonth()
public int getDayOfYear()
public DayOfWeek getDayOfWeek()
public boolean isLeapYear()
public boolean isAfter(ChronoLocalDate other)
public boolean isBefore(ChronoLocalDate other)
public boolean isEqual(ChronoLocalDate other)
Let’s Do It
WAP to perform following activities on the date enter by user in
format : YYYY-MM-DD
Is it in future or past?
Is it in a leap year?
What day of the week is it?
What is the day a month from now?
What is the date on next Tuesday?
LocalTime Class
LocalTime
LocalTime stores the time within a day
Measured from midnight
Based on a 24-hour clock (13:30 is 1:30 PM.)
LocalTime
Methods
public static LocalTime now()
public static LocalTime now(ZoneId zone)
public static LocalTime of(int hour, int minute)
public static LocalTime of(int hour, int minute, int second)
public static LocalTime of(int hour, int minute, int second, int
nanoOfSecond)
public static LocalTime parse(CharSequence text)
LocalTime
Methods
public int getHour()
public int getMinute()
public int getSecond()
public int getNano()
Let’s Do It
WAP to perform following activities on the Time enter by user in
format: HH:MM:SS
When is my lunch time?
Is lunch time in the future or past?
What is the time 1 hour 15 minutes from now?
How many minutes until lunch time?
How many hours until bedtime?
Train departs Boston at 1:45PM and arrives New York 7:25PM
How many minutes long is the train ride?
If the train was delayed 1 hour 19 minutes, what is the actual arrival
time?
LocalDateTime Class
LocalDateTime
LocalDateTime is a combination of LocalDate and LocalTime
LocalDateTime is useful for narrowing events.
LocalDateTime
Methods
public static LocalDateTime now()
public static LocalDateTime of(int year, Month month, int
dayOfMonth, int hour, int minute)
public static LocalDateTime of(int year, Month month, int
dayOfMonth, int hour, int minute, int second)
public static LocalDateTime of(LocalDate date, LocalTime
time)
public static LocalDateTime parse(CharSequence text)
LocalDateTime
Methods
public int getYear()
public LocalDateTime withYear(int year)
public LocalDateTime plusYears(long years)
public LocalDateTime minusYears(long years)
Let’s Do It
A company XYZ have fixed the meeting with company ABC on
15th December 2016 at 14:00 o’clock. WAP to answer following
queries:
When is the meeting with corporate?
When does my flight leave?
If I move the meeting to Friday, What is the date?
A training institute is going to start its new batch for Android
training for 15 days on 25th November 2016. WAP to answer
following queries:
When does the course start?
If the course start at 9 AM on Monday and ends at 5 PM on Friday, how
many hours am I in class.
DateTimeFormatter
DateTimeFormatter produces formatted date/times Using
predefined constants, patterns letters, or a localized style
Methods:
public static DateTimeFormatter ofPattern(String pattern)
public static DateTimeFormatter ofLocalizedDate(FormatStyle
dateStyle)
DateTimeFormatter
Pattern Symbols
Symbol Meaning Presentation Examples
M/L month-of-year number/text 7; 07; Jul; July; J
d day-of-month number 10
y year-of-era year 2004; 04
H hour-of-day (0-23) number 0
m minute-of-hour number 30
s second-of-minute number 55
S fraction-of-second fraction 978
E day-of-week text Tue; Tuesday;
V time-zone ID zone-id America/Los_Angeles; Z;
-08:30
a am-pm-of-day text PM
DateTimeFormatter
Constants:
public static final DateTimeFormatter ISO_LOCAL_DATE;
public static final DateTimeFormatter ISO_ORDINAL_DATE;
DateTimeFormatter
ZonedDateTime now = ZonedDateTime.now();
DateTimeFormatter formatter = DateTimeFormatter.ISO_LOCAL_DATE;
System.out.println(now.format(formatter));
formatter = DateTimeFormatter.ISO_ORDINAL_DATE;
System.out.println(now.format(formatter));
formatter = DateTimeFormatter.ofPattern("EEEE, MMMM dd, yyyy G,
hh:mm a VV");
System.out.println(now.format(formatter));
DateTimeFormatter
DateTimeFormatter uses the FormatStyle enumeration to
determine how the data is formatted.
FormatStyle values:
SHORT
MEDIUM
LONG
FULL
DateTimeFormatter
ZonedDateTime now = ZonedDateTime.now();
DateTimeFormatter formatter =
DateTimeFormatter.ofLocalizedDateTime(FormatStyle.MEDIUM);
System.out.println(now.format(formatter));