Skip to content

Commit c7ea1ab

Browse files
committed
Introduce parseOrNull in addition to the existing parse functions
1 parent 3e68613 commit c7ea1ab

21 files changed

+532
-87
lines changed

core/api/kotlinx-datetime.api

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -55,6 +55,7 @@ public final class kotlinx/datetime/DatePeriod : kotlinx/datetime/DateTimePeriod
5555

5656
public final class kotlinx/datetime/DatePeriod$Companion {
5757
public final fun parse (Ljava/lang/String;)Lkotlinx/datetime/DatePeriod;
58+
public final fun parseOrNull (Ljava/lang/String;)Lkotlinx/datetime/DatePeriod;
5859
public final fun serializer ()Lkotlinx/serialization/KSerializer;
5960
}
6061

@@ -81,6 +82,7 @@ public abstract class kotlinx/datetime/DateTimePeriod {
8182

8283
public final class kotlinx/datetime/DateTimePeriod$Companion {
8384
public final fun parse (Ljava/lang/String;)Lkotlinx/datetime/DateTimePeriod;
85+
public final fun parseOrNull (Ljava/lang/String;)Lkotlinx/datetime/DateTimePeriod;
8486
public final fun serializer ()Lkotlinx/serialization/KSerializer;
8587
}
8688

@@ -265,6 +267,8 @@ public final class kotlinx/datetime/InstantKt {
265267
public static final fun minus (Lkotlinx/datetime/Instant;Lkotlinx/datetime/Instant;Lkotlinx/datetime/DateTimeUnit;Lkotlinx/datetime/TimeZone;)J
266268
public static final fun minus (Lkotlinx/datetime/Instant;Lkotlinx/datetime/Instant;Lkotlinx/datetime/TimeZone;)Lkotlinx/datetime/DateTimePeriod;
267269
public static final fun monthsUntil (Lkotlinx/datetime/Instant;Lkotlinx/datetime/Instant;Lkotlinx/datetime/TimeZone;)I
270+
public static final fun parseOrNull (Lkotlinx/datetime/Instant$Companion;Ljava/lang/CharSequence;Lkotlinx/datetime/format/DateTimeFormat;)Lkotlinx/datetime/Instant;
271+
public static synthetic fun parseOrNull$default (Lkotlinx/datetime/Instant$Companion;Ljava/lang/CharSequence;Lkotlinx/datetime/format/DateTimeFormat;ILjava/lang/Object;)Lkotlinx/datetime/Instant;
268272
public static final fun plus (Lkotlinx/datetime/Instant;ILkotlinx/datetime/DateTimeUnit$TimeBased;)Lkotlinx/datetime/Instant;
269273
public static final fun plus (Lkotlinx/datetime/Instant;Lkotlinx/datetime/DateTimeUnit$TimeBased;)Lkotlinx/datetime/Instant;
270274
public static final fun toInstant (Ljava/lang/String;)Lkotlinx/datetime/Instant;
@@ -340,6 +344,8 @@ public final class kotlinx/datetime/LocalDateKt {
340344
public static final fun minus (Lkotlinx/datetime/LocalDate;Lkotlinx/datetime/DatePeriod;)Lkotlinx/datetime/LocalDate;
341345
public static final fun minus (Lkotlinx/datetime/LocalDate;Lkotlinx/datetime/DateTimeUnit$DateBased;)Lkotlinx/datetime/LocalDate;
342346
public static final fun minus (Lkotlinx/datetime/LocalDate;Lkotlinx/datetime/LocalDate;)Lkotlinx/datetime/DatePeriod;
347+
public static final fun parseOrNull (Lkotlinx/datetime/LocalDate$Companion;Ljava/lang/CharSequence;Lkotlinx/datetime/format/DateTimeFormat;)Lkotlinx/datetime/LocalDate;
348+
public static synthetic fun parseOrNull$default (Lkotlinx/datetime/LocalDate$Companion;Ljava/lang/CharSequence;Lkotlinx/datetime/format/DateTimeFormat;ILjava/lang/Object;)Lkotlinx/datetime/LocalDate;
343349
public static final fun plus (Lkotlinx/datetime/LocalDate;ILkotlinx/datetime/DateTimeUnit$DateBased;)Lkotlinx/datetime/LocalDate;
344350
public static final fun toLocalDate (Ljava/lang/String;)Lkotlinx/datetime/LocalDate;
345351
}
@@ -459,6 +465,8 @@ public final class kotlinx/datetime/LocalDateTimeKt {
459465
public static synthetic fun LocalDateTime$default (ILjava/time/Month;IIIIIILjava/lang/Object;)Lkotlinx/datetime/LocalDateTime;
460466
public static synthetic fun LocalDateTime$default (ILkotlinx/datetime/Month;IIIIIILjava/lang/Object;)Lkotlinx/datetime/LocalDateTime;
461467
public static final fun format (Lkotlinx/datetime/LocalDateTime;Lkotlinx/datetime/format/DateTimeFormat;)Ljava/lang/String;
468+
public static final fun parseOrNull (Lkotlinx/datetime/LocalDateTime$Companion;Ljava/lang/CharSequence;Lkotlinx/datetime/format/DateTimeFormat;)Lkotlinx/datetime/LocalDateTime;
469+
public static synthetic fun parseOrNull$default (Lkotlinx/datetime/LocalDateTime$Companion;Ljava/lang/CharSequence;Lkotlinx/datetime/format/DateTimeFormat;ILjava/lang/Object;)Lkotlinx/datetime/LocalDateTime;
462470
public static final fun toLocalDateTime (Ljava/lang/String;)Lkotlinx/datetime/LocalDateTime;
463471
}
464472

@@ -509,6 +517,8 @@ public final class kotlinx/datetime/LocalTimeKt {
509517
public static synthetic fun atDate$default (Lkotlinx/datetime/LocalTime;ILjava/time/Month;ILkotlin/Unit;ILjava/lang/Object;)Lkotlinx/datetime/LocalDateTime;
510518
public static synthetic fun atDate$default (Lkotlinx/datetime/LocalTime;ILkotlinx/datetime/Month;ILkotlin/Unit;ILjava/lang/Object;)Lkotlinx/datetime/LocalDateTime;
511519
public static final fun format (Lkotlinx/datetime/LocalTime;Lkotlinx/datetime/format/DateTimeFormat;)Ljava/lang/String;
520+
public static final fun parseOrNull (Lkotlinx/datetime/LocalTime$Companion;Ljava/lang/CharSequence;Lkotlinx/datetime/format/DateTimeFormat;)Lkotlinx/datetime/LocalTime;
521+
public static synthetic fun parseOrNull$default (Lkotlinx/datetime/LocalTime$Companion;Ljava/lang/CharSequence;Lkotlinx/datetime/format/DateTimeFormat;ILjava/lang/Object;)Lkotlinx/datetime/LocalTime;
512522
public static final fun toLocalTime (Ljava/lang/String;)Lkotlinx/datetime/LocalTime;
513523
}
514524

@@ -613,6 +623,8 @@ public final class kotlinx/datetime/UtcOffsetKt {
613623
public static final fun UtcOffset ()Lkotlinx/datetime/UtcOffset;
614624
public static final fun asTimeZone (Lkotlinx/datetime/UtcOffset;)Lkotlinx/datetime/FixedOffsetTimeZone;
615625
public static final fun format (Lkotlinx/datetime/UtcOffset;Lkotlinx/datetime/format/DateTimeFormat;)Ljava/lang/String;
626+
public static final fun parseOrNull (Lkotlinx/datetime/UtcOffset$Companion;Ljava/lang/CharSequence;Lkotlinx/datetime/format/DateTimeFormat;)Lkotlinx/datetime/UtcOffset;
627+
public static synthetic fun parseOrNull$default (Lkotlinx/datetime/UtcOffset$Companion;Ljava/lang/CharSequence;Lkotlinx/datetime/format/DateTimeFormat;ILjava/lang/Object;)Lkotlinx/datetime/UtcOffset;
616628
}
617629

618630
public final class kotlinx/datetime/format/AmPmMarker : java/lang/Enum {
@@ -688,6 +700,7 @@ public final class kotlinx/datetime/format/DateTimeComponents$Formats {
688700
public final class kotlinx/datetime/format/DateTimeComponentsKt {
689701
public static final fun format (Lkotlinx/datetime/format/DateTimeFormat;Lkotlin/jvm/functions/Function1;)Ljava/lang/String;
690702
public static final fun parse (Lkotlinx/datetime/format/DateTimeComponents$Companion;Ljava/lang/CharSequence;Lkotlinx/datetime/format/DateTimeFormat;)Lkotlinx/datetime/format/DateTimeComponents;
703+
public static final fun parseOrNull (Lkotlinx/datetime/format/DateTimeComponents$Companion;Ljava/lang/CharSequence;Lkotlinx/datetime/format/DateTimeFormat;)Lkotlinx/datetime/format/DateTimeComponents;
691704
}
692705

693706
public abstract interface class kotlinx/datetime/format/DateTimeFormat {

core/api/kotlinx-datetime.klib.api

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -320,6 +320,7 @@ final class kotlinx.datetime/DatePeriod : kotlinx.datetime/DateTimePeriod { // k
320320

321321
final object Companion { // kotlinx.datetime/DatePeriod.Companion|null[0]
322322
final fun parse(kotlin/String): kotlinx.datetime/DatePeriod // kotlinx.datetime/DatePeriod.Companion.parse|parse(kotlin.String){}[0]
323+
final fun parseOrNull(kotlin/String): kotlinx.datetime/DatePeriod? // kotlinx.datetime/DatePeriod.Companion.parseOrNull|parseOrNull(kotlin.String){}[0]
323324
final fun serializer(): kotlinx.serialization/KSerializer<kotlinx.datetime/DatePeriod> // kotlinx.datetime/DatePeriod.Companion.serializer|serializer(){}[0]
324325
}
325326
}
@@ -625,6 +626,7 @@ sealed class kotlinx.datetime/DateTimePeriod { // kotlinx.datetime/DateTimePerio
625626

626627
final object Companion { // kotlinx.datetime/DateTimePeriod.Companion|null[0]
627628
final fun parse(kotlin/String): kotlinx.datetime/DateTimePeriod // kotlinx.datetime/DateTimePeriod.Companion.parse|parse(kotlin.String){}[0]
629+
final fun parseOrNull(kotlin/String): kotlinx.datetime/DateTimePeriod? // kotlinx.datetime/DateTimePeriod.Companion.parseOrNull|parseOrNull(kotlin.String){}[0]
628630
final fun serializer(): kotlinx.serialization/KSerializer<kotlinx.datetime/DateTimePeriod> // kotlinx.datetime/DateTimePeriod.Companion.serializer|serializer(){}[0]
629631
}
630632
}
@@ -974,6 +976,7 @@ final fun (kotlin/String).kotlinx.datetime/toLocalDate(): kotlinx.datetime/Local
974976
final fun (kotlin/String).kotlinx.datetime/toLocalDateTime(): kotlinx.datetime/LocalDateTime // kotlinx.datetime/toLocalDateTime|[email protected](){}[0]
975977
final fun (kotlin/String).kotlinx.datetime/toLocalTime(): kotlinx.datetime/LocalTime // kotlinx.datetime/toLocalTime|[email protected](){}[0]
976978
final fun (kotlinx.datetime.format/DateTimeComponents.Companion).kotlinx.datetime.format/parse(kotlin/CharSequence, kotlinx.datetime.format/DateTimeFormat<kotlinx.datetime.format/DateTimeComponents>): kotlinx.datetime.format/DateTimeComponents // kotlinx.datetime.format/parse|[email protected](kotlin.CharSequence;kotlinx.datetime.format.DateTimeFormat<kotlinx.datetime.format.DateTimeComponents>){}[0]
979+
final fun (kotlinx.datetime.format/DateTimeComponents.Companion).kotlinx.datetime.format/parseOrNull(kotlin/CharSequence, kotlinx.datetime.format/DateTimeFormat<kotlinx.datetime.format/DateTimeComponents>): kotlinx.datetime.format/DateTimeComponents? // kotlinx.datetime.format/parseOrNull|[email protected](kotlin.CharSequence;kotlinx.datetime.format.DateTimeFormat<kotlinx.datetime.format.DateTimeComponents>){}[0]
977980
final fun (kotlinx.datetime.format/DateTimeFormat<kotlinx.datetime.format/DateTimeComponents>).kotlinx.datetime.format/format(kotlin/Function1<kotlinx.datetime.format/DateTimeComponents, kotlin/Unit>): kotlin/String // kotlinx.datetime.format/format|[email protected]<kotlinx.datetime.format.DateTimeComponents>(kotlin.Function1<kotlinx.datetime.format.DateTimeComponents,kotlin.Unit>){}[0]
978981
final fun (kotlinx.datetime.format/DateTimeFormatBuilder).kotlinx.datetime.format/byUnicodePattern(kotlin/String) // kotlinx.datetime.format/byUnicodePattern|[email protected](kotlin.String){}[0]
979982
final fun (kotlinx.datetime.format/DateTimeFormatBuilder).kotlinx.datetime.format/char(kotlin/Char) // kotlinx.datetime.format/char|[email protected](kotlin.Char){}[0]
@@ -1008,6 +1011,7 @@ final fun (kotlinx.datetime/Instant).kotlinx.datetime/toLocalDateTime(kotlinx.da
10081011
final fun (kotlinx.datetime/Instant).kotlinx.datetime/until(kotlinx.datetime/Instant, kotlinx.datetime/DateTimeUnit, kotlinx.datetime/TimeZone): kotlin/Long // kotlinx.datetime/until|[email protected](kotlinx.datetime.Instant;kotlinx.datetime.DateTimeUnit;kotlinx.datetime.TimeZone){}[0]
10091012
final fun (kotlinx.datetime/Instant).kotlinx.datetime/until(kotlinx.datetime/Instant, kotlinx.datetime/DateTimeUnit.TimeBased): kotlin/Long // kotlinx.datetime/until|[email protected](kotlinx.datetime.Instant;kotlinx.datetime.DateTimeUnit.TimeBased){}[0]
10101013
final fun (kotlinx.datetime/Instant).kotlinx.datetime/yearsUntil(kotlinx.datetime/Instant, kotlinx.datetime/TimeZone): kotlin/Int // kotlinx.datetime/yearsUntil|[email protected](kotlinx.datetime.Instant;kotlinx.datetime.TimeZone){}[0]
1014+
final fun (kotlinx.datetime/Instant.Companion).kotlinx.datetime/parseOrNull(kotlin/CharSequence, kotlinx.datetime.format/DateTimeFormat<kotlinx.datetime.format/DateTimeComponents> = ...): kotlinx.datetime/Instant? // kotlinx.datetime/parseOrNull|[email protected](kotlin.CharSequence;kotlinx.datetime.format.DateTimeFormat<kotlinx.datetime.format.DateTimeComponents>){}[0]
10111015
final fun (kotlinx.datetime/LocalDate).kotlinx.datetime/atStartOfDayIn(kotlinx.datetime/TimeZone): kotlinx.datetime/Instant // kotlinx.datetime/atStartOfDayIn|[email protected](kotlinx.datetime.TimeZone){}[0]
10121016
final fun (kotlinx.datetime/LocalDate).kotlinx.datetime/atTime(kotlin/Int, kotlin/Int, kotlin/Int = ..., kotlin/Int = ...): kotlinx.datetime/LocalDateTime // kotlinx.datetime/atTime|[email protected](kotlin.Int;kotlin.Int;kotlin.Int;kotlin.Int){}[0]
10131017
final fun (kotlinx.datetime/LocalDate).kotlinx.datetime/atTime(kotlinx.datetime/LocalTime): kotlinx.datetime/LocalDateTime // kotlinx.datetime/atTime|[email protected](kotlinx.datetime.LocalTime){}[0]
@@ -1027,6 +1031,7 @@ final fun (kotlinx.datetime/LocalDate).kotlinx.datetime/plus(kotlinx.datetime/Da
10271031
final fun (kotlinx.datetime/LocalDate).kotlinx.datetime/plus(kotlinx.datetime/DateTimeUnit.DateBased): kotlinx.datetime/LocalDate // kotlinx.datetime/plus|[email protected](kotlinx.datetime.DateTimeUnit.DateBased){}[0]
10281032
final fun (kotlinx.datetime/LocalDate).kotlinx.datetime/until(kotlinx.datetime/LocalDate, kotlinx.datetime/DateTimeUnit.DateBased): kotlin/Long // kotlinx.datetime/until|[email protected](kotlinx.datetime.LocalDate;kotlinx.datetime.DateTimeUnit.DateBased){}[0]
10291033
final fun (kotlinx.datetime/LocalDate).kotlinx.datetime/yearsUntil(kotlinx.datetime/LocalDate): kotlin/Int // kotlinx.datetime/yearsUntil|[email protected](kotlinx.datetime.LocalDate){}[0]
1034+
final fun (kotlinx.datetime/LocalDate.Companion).kotlinx.datetime/parseOrNull(kotlin/CharSequence, kotlinx.datetime.format/DateTimeFormat<kotlinx.datetime/LocalDate> = ...): kotlinx.datetime/LocalDate? // kotlinx.datetime/parseOrNull|[email protected](kotlin.CharSequence;kotlinx.datetime.format.DateTimeFormat<kotlinx.datetime.LocalDate>){}[0]
10301035
final fun (kotlinx.datetime/LocalDateProgression).kotlinx.datetime/first(): kotlinx.datetime/LocalDate // kotlinx.datetime/first|[email protected](){}[0]
10311036
final fun (kotlinx.datetime/LocalDateProgression).kotlinx.datetime/firstOrNull(): kotlinx.datetime/LocalDate? // kotlinx.datetime/firstOrNull|[email protected](){}[0]
10321037
final fun (kotlinx.datetime/LocalDateProgression).kotlinx.datetime/last(): kotlinx.datetime/LocalDate // kotlinx.datetime/last|[email protected](){}[0]
@@ -1039,15 +1044,18 @@ final fun (kotlinx.datetime/LocalDateProgression).kotlinx.datetime/step(kotlin/L
10391044
final fun (kotlinx.datetime/LocalDateTime).kotlinx.datetime/format(kotlinx.datetime.format/DateTimeFormat<kotlinx.datetime/LocalDateTime>): kotlin/String // kotlinx.datetime/format|[email protected](kotlinx.datetime.format.DateTimeFormat<kotlinx.datetime.LocalDateTime>){}[0]
10401045
final fun (kotlinx.datetime/LocalDateTime).kotlinx.datetime/toInstant(kotlinx.datetime/TimeZone): kotlinx.datetime/Instant // kotlinx.datetime/toInstant|[email protected](kotlinx.datetime.TimeZone){}[0]
10411046
final fun (kotlinx.datetime/LocalDateTime).kotlinx.datetime/toInstant(kotlinx.datetime/UtcOffset): kotlinx.datetime/Instant // kotlinx.datetime/toInstant|[email protected](kotlinx.datetime.UtcOffset){}[0]
1047+
final fun (kotlinx.datetime/LocalDateTime.Companion).kotlinx.datetime/parseOrNull(kotlin/CharSequence, kotlinx.datetime.format/DateTimeFormat<kotlinx.datetime/LocalDateTime> = ...): kotlinx.datetime/LocalDateTime? // kotlinx.datetime/parseOrNull|[email protected](kotlin.CharSequence;kotlinx.datetime.format.DateTimeFormat<kotlinx.datetime.LocalDateTime>){}[0]
10421048
final fun (kotlinx.datetime/LocalTime).kotlinx.datetime/atDate(kotlin/Int, kotlin/Int, kotlin/Int): kotlinx.datetime/LocalDateTime // kotlinx.datetime/atDate|[email protected](kotlin.Int;kotlin.Int;kotlin.Int){}[0]
10431049
final fun (kotlinx.datetime/LocalTime).kotlinx.datetime/atDate(kotlin/Int, kotlin/Int, kotlin/Int, kotlin/Unit = ...): kotlinx.datetime/LocalDateTime // kotlinx.datetime/atDate|[email protected](kotlin.Int;kotlin.Int;kotlin.Int;kotlin.Unit){}[0]
10441050
final fun (kotlinx.datetime/LocalTime).kotlinx.datetime/atDate(kotlin/Int, kotlinx.datetime/Month, kotlin/Int): kotlinx.datetime/LocalDateTime // kotlinx.datetime/atDate|[email protected](kotlin.Int;kotlinx.datetime.Month;kotlin.Int){}[0]
10451051
final fun (kotlinx.datetime/LocalTime).kotlinx.datetime/atDate(kotlin/Int, kotlinx.datetime/Month, kotlin/Int, kotlin/Unit = ...): kotlinx.datetime/LocalDateTime // kotlinx.datetime/atDate|[email protected](kotlin.Int;kotlinx.datetime.Month;kotlin.Int;kotlin.Unit){}[0]
10461052
final fun (kotlinx.datetime/LocalTime).kotlinx.datetime/atDate(kotlinx.datetime/LocalDate): kotlinx.datetime/LocalDateTime // kotlinx.datetime/atDate|[email protected](kotlinx.datetime.LocalDate){}[0]
10471053
final fun (kotlinx.datetime/LocalTime).kotlinx.datetime/format(kotlinx.datetime.format/DateTimeFormat<kotlinx.datetime/LocalTime>): kotlin/String // kotlinx.datetime/format|[email protected](kotlinx.datetime.format.DateTimeFormat<kotlinx.datetime.LocalTime>){}[0]
1054+
final fun (kotlinx.datetime/LocalTime.Companion).kotlinx.datetime/parseOrNull(kotlin/CharSequence, kotlinx.datetime.format/DateTimeFormat<kotlinx.datetime/LocalTime> = ...): kotlinx.datetime/LocalTime? // kotlinx.datetime/parseOrNull|[email protected](kotlin.CharSequence;kotlinx.datetime.format.DateTimeFormat<kotlinx.datetime.LocalTime>){}[0]
10481055
final fun (kotlinx.datetime/TimeZone).kotlinx.datetime/offsetAt(kotlinx.datetime/Instant): kotlinx.datetime/UtcOffset // kotlinx.datetime/offsetAt|[email protected](kotlinx.datetime.Instant){}[0]
10491056
final fun (kotlinx.datetime/UtcOffset).kotlinx.datetime/asTimeZone(): kotlinx.datetime/FixedOffsetTimeZone // kotlinx.datetime/asTimeZone|[email protected](){}[0]
10501057
final fun (kotlinx.datetime/UtcOffset).kotlinx.datetime/format(kotlinx.datetime.format/DateTimeFormat<kotlinx.datetime/UtcOffset>): kotlin/String // kotlinx.datetime/format|[email protected](kotlinx.datetime.format.DateTimeFormat<kotlinx.datetime.UtcOffset>){}[0]
1058+
final fun (kotlinx.datetime/UtcOffset.Companion).kotlinx.datetime/parseOrNull(kotlin/CharSequence, kotlinx.datetime.format/DateTimeFormat<kotlinx.datetime/UtcOffset> = ...): kotlinx.datetime/UtcOffset? // kotlinx.datetime/parseOrNull|[email protected](kotlin.CharSequence;kotlinx.datetime.format.DateTimeFormat<kotlinx.datetime.UtcOffset>){}[0]
10511059
final fun <#A: kotlinx.datetime.format/DateTimeFormatBuilder> (#A).kotlinx.datetime.format/alternativeParsing(kotlin/Array<out kotlin/Function1<#A, kotlin/Unit>>..., kotlin/Function1<#A, kotlin/Unit>) // kotlinx.datetime.format/alternativeParsing|alternativeParsing@0:0(kotlin.Array<out|kotlin.Function1<0:0,kotlin.Unit>>...;kotlin.Function1<0:0,kotlin.Unit>){0§<kotlinx.datetime.format.DateTimeFormatBuilder>}[0]
10521060
final fun <#A: kotlinx.datetime.format/DateTimeFormatBuilder> (#A).kotlinx.datetime.format/optional(kotlin/String = ..., kotlin/Function1<#A, kotlin/Unit>) // kotlinx.datetime.format/optional|optional@0:0(kotlin.String;kotlin.Function1<0:0,kotlin.Unit>){0§<kotlinx.datetime.format.DateTimeFormatBuilder>}[0]
10531061
final fun kotlinx.datetime/DateTimePeriod(kotlin/Int = ..., kotlin/Int = ..., kotlin/Int = ..., kotlin/Int = ..., kotlin/Int = ..., kotlin/Int = ..., kotlin/Long = ...): kotlinx.datetime/DateTimePeriod // kotlinx.datetime/DateTimePeriod|DateTimePeriod(kotlin.Int;kotlin.Int;kotlin.Int;kotlin.Int;kotlin.Int;kotlin.Int;kotlin.Long){}[0]

0 commit comments

Comments
 (0)