@@ -40,6 +40,7 @@ The library provides a basic set of types for working with date and time:
4040- ` Clock ` to obtain the current instant;
4141- ` LocalDateTime ` to represent date and time components without a reference to the particular time zone;
4242- ` LocalDate ` to represent the components of date only;
43+ - ` YearMonth ` to represent only the year and month components;
4344- ` LocalTime ` to represent the components of time only;
4445- ` TimeZone ` and ` FixedOffsetTimeZone ` provide time zone information to convert between ` Instant ` and ` LocalDateTime ` ;
4546- ` Month ` and ` DayOfWeek ` enums;
@@ -67,6 +68,9 @@ Here is some basic advice on how to choose which of the date-carrying types to u
6768
6869- Use ` LocalDate ` to represent the date of an event that does not have a specific time associated with it (like a birth date).
6970
71+ - Use ` YearMonth ` to represent the year and month of an event that does not have a specific day associated with it
72+ or has a day-of-month that is inferred from the context (like a credit card expiration date).
73+
7074- Use ` LocalTime ` to represent the time of an event that does not have a specific date associated with it.
7175
7276## Operations
@@ -150,6 +154,16 @@ Note, that today's date really depends on the time zone in which you're observin
150154val knownDate = LocalDate (2020 , 2 , 21 )
151155```
152156
157+ ### Getting year and month components
158+
159+ A ` YearMonth ` represents a year and month without a day. You can obtain one from a ` LocalDate `
160+ by taking its ` yearMonth ` property.
161+
162+ ``` kotlin
163+ val day = LocalDate (2020 , 2 , 21 )
164+ val yearMonth: YearMonth = day.yearMonth
165+ ```
166+
153167### Getting local time components
154168
155169A ` LocalTime ` represents local time without date. You can obtain one from an ` Instant `
@@ -273,10 +287,10 @@ collection of all datetime fields, can be used instead.
273287``` kotlin
274288// import kotlinx.datetime.format.*
275289
276- val yearMonth = DateTimeComponents .Format { year (); char(' - ' ); monthNumber () }
277- .parse(" 2024-01 " )
278- println (yearMonth.year)
279- println (yearMonth .monthNumber)
290+ val monthDay = DateTimeComponents .Format { monthNumber (); char(' / ' ); dayOfMonth () }
291+ .parse(" 12/25 " )
292+ println (monthDay.dayOfMonth) // 25
293+ println (monthDay .monthNumber) // 12
280294
281295val dateTimeOffset = DateTimeComponents .Formats .ISO_DATE_TIME_OFFSET
282296 .parse(" 2023-01-07T23:16:15.53+02:00" )
0 commit comments