JDK Tutorials - Herong's Tutorial Examples
∟Java Date-Time API
∟java.time.Period - Periods in Days and Months
This section describes the java.time.Period class that represents a calendar period measured in years, months, and/or days.
When manipulating calendar dates, we have to handle calendar periods that are measured in days, months or years.
The java.time.Period class in the Date-Time API is designed to help us do this.
It represents a calendar period between two given calendar dates.
A calendar duration is actually represented by a java.time.Period object with 3 independent components:
- Years - Representing the number of years in this period. A 1-year period is equivalent to a 12-month period.
But a 1-year period cannot be converted to a period in days, because a 1-year period could be a 365-day period or
a 366-day period depending on in which calendar year this period is applied.
- Months - Representing the number of months in this period. A 1-month period cannot be converted to a period in days,
because a 1-year period could be a 31-day period, a 30-day period, a 29-day period or a 28-day period
depending on in which calendar month this period is applied.
- Days - Representing the number of days in this period.
A 1-day period cannot be converted to a duration in hours,
because a 1-day period could be a 25-hour duration, a 24-hour duration, or a 23-hour duration
depending on in which timezone and on which calendar date this period is applied.
The java.time.Period class does respect calendar rules and timezone rules.
Main methods offered on the java.time.Period class are:
- of() - A static method returning a Period object representing the calendar period
constructed with the given number of years, months and days.
Note that there are no constructors in Period class. So "new Period()" is not a valid expression.
- getYears() - An object method returning the years value of this Period object.
- getMonths() - An object method returning the months value of this Period object.
- getDays() - An object method returning the days value of this Period object.
- normalized() - An object method returning a copy of this Period object with the months value
normalized into the years value.
- toString() - An object method returning a string representing this Period object in ISO 8601 duration format.
Here is an example of toString() output, "P6Y3M1D".
- plus() - An object method returns a copy of this Period object with another period added.
- minus() - An object method returns a copy of this Period object with another period removed.
- parse() - A static method returning a Period object representing a calendar period constructed by
parsing the given character sequence using the ISO 8601 duration format of "PnYnMnD".
- between() - A static method returning a Period object representing the calendar period
between two given calendar dates.
- addTo() - An object method returning a date-time object representing the moment of time
constructed by adding this period to a given moment of time.
- subtractFrom() - An object method returning a date-time object representing the moment of time
constructed by subtracting this period from a given moment of time.
Table of Contents
About This JDK Tutorial Book
JDK (Java Development Kit)
►Java Date-Time API
What Is Date-Time API
java.time.Instant - Representing a Moment of Time
java.time.Instant Usage Examples
java.time.Instant - get(INSTANT_SECONDS) Error
Converting java.util.Date to java.time.Instant
java.time.ZonedDateTime - Calendar and Timezone
java.time.ZonedDateTime Usage Examples
Converting java.util.GregorianCalendar to java.time.ZonedDateTime
java.time.OffsetDateTime - Calendar and UTC Offset
java.time.OffsetDateTime Usage Examples
java.time.LocalDateTime - Local Date and time without Timezone
Partial Date and Time Objects and Classes
java.time.format.DateTimeFormatter - Date-Time Strings
java.time.Duration - Time Durations
java.time.Duration Usage Examples
►java.time.Period - Periods in Days and Months
java.time.Period Usage Examples
Date, Time and Calendar Classes
Date and Time Object and String Conversion
Number Object and Numeric String Conversion
Locales, Localization Methods and Resource Bundles
Calling and Importing Classes Defined in Unnamed Packages
HashSet, Vector, HashMap and Collection Classes
Character Set Encoding Classes and Methods
Character Set Encoding Maps
Encoding Conversion Programs for Encoded Text Files
Java Logging
Socket Network Communication
Datagram Network Communication
DOM (Document Object Model) - API for XML Files
SAX (Simple API for XML)
DTD (Document Type Definition) - XML Validation
XSD (XML Schema Definition) - XML Validation
XSL (Extensible Stylesheet Language)
Message Digest Algorithm Implementations in JDK
Private key and Public Key Pair Generation
PKCS#8/X.509 Private/Public Encoding Standards
Digital Signature Algorithm and Sample Program
"keytool" Commands and "keystore" Files
KeyStore and Certificate Classes
Secret Key Generation and Management
Cipher - Encryption and Decryption
The SSL (Secure Socket Layer) Protocol
SSL Socket Communication Testing Programs
SSL Client Authentication
HTTPS (Hypertext Transfer Protocol Secure)
Outdated Tutorials
References
Full Version in PDF/EPUB