Skip to content

Commit 6aa69f8

Browse files
committed
Introduce parseOrNull in addition to the existing parse functions
1 parent 5a1b10e commit 6aa69f8

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;
@@ -338,6 +342,8 @@ public final class kotlinx/datetime/LocalDateKt {
338342
public static final fun minus (Lkotlinx/datetime/LocalDate;Lkotlinx/datetime/DatePeriod;)Lkotlinx/datetime/LocalDate;
339343
public static final fun minus (Lkotlinx/datetime/LocalDate;Lkotlinx/datetime/DateTimeUnit$DateBased;)Lkotlinx/datetime/LocalDate;
340344
public static final fun minus (Lkotlinx/datetime/LocalDate;Lkotlinx/datetime/LocalDate;)Lkotlinx/datetime/DatePeriod;
345+
public static final fun parseOrNull (Lkotlinx/datetime/LocalDate$Companion;Ljava/lang/CharSequence;Lkotlinx/datetime/format/DateTimeFormat;)Lkotlinx/datetime/LocalDate;
346+
public static synthetic fun parseOrNull$default (Lkotlinx/datetime/LocalDate$Companion;Ljava/lang/CharSequence;Lkotlinx/datetime/format/DateTimeFormat;ILjava/lang/Object;)Lkotlinx/datetime/LocalDate;
341347
public static final fun plus (Lkotlinx/datetime/LocalDate;ILkotlinx/datetime/DateTimeUnit$DateBased;)Lkotlinx/datetime/LocalDate;
342348
public static final fun toLocalDate (Ljava/lang/String;)Lkotlinx/datetime/LocalDate;
343349
}
@@ -394,6 +400,8 @@ public final class kotlinx/datetime/LocalDateTimeKt {
394400
public static synthetic fun LocalDateTime$default (ILjava/time/Month;IIIIIILjava/lang/Object;)Lkotlinx/datetime/LocalDateTime;
395401
public static synthetic fun LocalDateTime$default (ILkotlinx/datetime/Month;IIIIIILjava/lang/Object;)Lkotlinx/datetime/LocalDateTime;
396402
public static final fun format (Lkotlinx/datetime/LocalDateTime;Lkotlinx/datetime/format/DateTimeFormat;)Ljava/lang/String;
403+
public static final fun parseOrNull (Lkotlinx/datetime/LocalDateTime$Companion;Ljava/lang/CharSequence;Lkotlinx/datetime/format/DateTimeFormat;)Lkotlinx/datetime/LocalDateTime;
404+
public static synthetic fun parseOrNull$default (Lkotlinx/datetime/LocalDateTime$Companion;Ljava/lang/CharSequence;Lkotlinx/datetime/format/DateTimeFormat;ILjava/lang/Object;)Lkotlinx/datetime/LocalDateTime;
397405
public static final fun toLocalDateTime (Ljava/lang/String;)Lkotlinx/datetime/LocalDateTime;
398406
}
399407

@@ -444,6 +452,8 @@ public final class kotlinx/datetime/LocalTimeKt {
444452
public static synthetic fun atDate$default (Lkotlinx/datetime/LocalTime;ILjava/time/Month;ILkotlin/Unit;ILjava/lang/Object;)Lkotlinx/datetime/LocalDateTime;
445453
public static synthetic fun atDate$default (Lkotlinx/datetime/LocalTime;ILkotlinx/datetime/Month;ILkotlin/Unit;ILjava/lang/Object;)Lkotlinx/datetime/LocalDateTime;
446454
public static final fun format (Lkotlinx/datetime/LocalTime;Lkotlinx/datetime/format/DateTimeFormat;)Ljava/lang/String;
455+
public static final fun parseOrNull (Lkotlinx/datetime/LocalTime$Companion;Ljava/lang/CharSequence;Lkotlinx/datetime/format/DateTimeFormat;)Lkotlinx/datetime/LocalTime;
456+
public static synthetic fun parseOrNull$default (Lkotlinx/datetime/LocalTime$Companion;Ljava/lang/CharSequence;Lkotlinx/datetime/format/DateTimeFormat;ILjava/lang/Object;)Lkotlinx/datetime/LocalTime;
447457
public static final fun toLocalTime (Ljava/lang/String;)Lkotlinx/datetime/LocalTime;
448458
}
449459

@@ -548,6 +558,8 @@ public final class kotlinx/datetime/UtcOffsetKt {
548558
public static final fun UtcOffset ()Lkotlinx/datetime/UtcOffset;
549559
public static final fun asTimeZone (Lkotlinx/datetime/UtcOffset;)Lkotlinx/datetime/FixedOffsetTimeZone;
550560
public static final fun format (Lkotlinx/datetime/UtcOffset;Lkotlinx/datetime/format/DateTimeFormat;)Ljava/lang/String;
561+
public static final fun parseOrNull (Lkotlinx/datetime/UtcOffset$Companion;Ljava/lang/CharSequence;Lkotlinx/datetime/format/DateTimeFormat;)Lkotlinx/datetime/UtcOffset;
562+
public static synthetic fun parseOrNull$default (Lkotlinx/datetime/UtcOffset$Companion;Ljava/lang/CharSequence;Lkotlinx/datetime/format/DateTimeFormat;ILjava/lang/Object;)Lkotlinx/datetime/UtcOffset;
551563
}
552564

553565
public final class kotlinx/datetime/format/AmPmMarker : java/lang/Enum {
@@ -623,6 +635,7 @@ public final class kotlinx/datetime/format/DateTimeComponents$Formats {
623635
public final class kotlinx/datetime/format/DateTimeComponentsKt {
624636
public static final fun format (Lkotlinx/datetime/format/DateTimeFormat;Lkotlin/jvm/functions/Function1;)Ljava/lang/String;
625637
public static final fun parse (Lkotlinx/datetime/format/DateTimeComponents$Companion;Ljava/lang/CharSequence;Lkotlinx/datetime/format/DateTimeFormat;)Lkotlinx/datetime/format/DateTimeComponents;
638+
public static final fun parseOrNull (Lkotlinx/datetime/format/DateTimeComponents$Companion;Ljava/lang/CharSequence;Lkotlinx/datetime/format/DateTimeFormat;)Lkotlinx/datetime/format/DateTimeComponents;
626639
}
627640

628641
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
@@ -269,6 +269,7 @@ final class kotlinx.datetime/DatePeriod : kotlinx.datetime/DateTimePeriod { // k
269269

270270
final object Companion { // kotlinx.datetime/DatePeriod.Companion|null[0]
271271
final fun parse(kotlin/String): kotlinx.datetime/DatePeriod // kotlinx.datetime/DatePeriod.Companion.parse|parse(kotlin.String){}[0]
272+
final fun parseOrNull(kotlin/String): kotlinx.datetime/DatePeriod? // kotlinx.datetime/DatePeriod.Companion.parseOrNull|parseOrNull(kotlin.String){}[0]
272273
final fun serializer(): kotlinx.serialization/KSerializer<kotlinx.datetime/DatePeriod> // kotlinx.datetime/DatePeriod.Companion.serializer|serializer(){}[0]
273274
}
274275
}
@@ -533,6 +534,7 @@ sealed class kotlinx.datetime/DateTimePeriod { // kotlinx.datetime/DateTimePerio
533534

534535
final object Companion { // kotlinx.datetime/DateTimePeriod.Companion|null[0]
535536
final fun parse(kotlin/String): kotlinx.datetime/DateTimePeriod // kotlinx.datetime/DateTimePeriod.Companion.parse|parse(kotlin.String){}[0]
537+
final fun parseOrNull(kotlin/String): kotlinx.datetime/DateTimePeriod? // kotlinx.datetime/DateTimePeriod.Companion.parseOrNull|parseOrNull(kotlin.String){}[0]
536538
final fun serializer(): kotlinx.serialization/KSerializer<kotlinx.datetime/DateTimePeriod> // kotlinx.datetime/DateTimePeriod.Companion.serializer|serializer(){}[0]
537539
}
538540
}
@@ -826,6 +828,7 @@ final fun (kotlin/String).kotlinx.datetime/toLocalDate(): kotlinx.datetime/Local
826828
final fun (kotlin/String).kotlinx.datetime/toLocalDateTime(): kotlinx.datetime/LocalDateTime // kotlinx.datetime/toLocalDateTime|[email protected](){}[0]
827829
final fun (kotlin/String).kotlinx.datetime/toLocalTime(): kotlinx.datetime/LocalTime // kotlinx.datetime/toLocalTime|[email protected](){}[0]
828830
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]
831+
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]
829832
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]
830833
final fun (kotlinx.datetime.format/DateTimeFormatBuilder).kotlinx.datetime.format/byUnicodePattern(kotlin/String) // kotlinx.datetime.format/byUnicodePattern|[email protected](kotlin.String){}[0]
831834
final fun (kotlinx.datetime.format/DateTimeFormatBuilder).kotlinx.datetime.format/char(kotlin/Char) // kotlinx.datetime.format/char|[email protected](kotlin.Char){}[0]
@@ -860,6 +863,7 @@ final fun (kotlinx.datetime/Instant).kotlinx.datetime/toLocalDateTime(kotlinx.da
860863
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]
861864
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]
862865
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]
866+
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]
863867
final fun (kotlinx.datetime/LocalDate).kotlinx.datetime/atStartOfDayIn(kotlinx.datetime/TimeZone): kotlinx.datetime/Instant // kotlinx.datetime/atStartOfDayIn|[email protected](kotlinx.datetime.TimeZone){}[0]
864868
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]
865869
final fun (kotlinx.datetime/LocalDate).kotlinx.datetime/atTime(kotlinx.datetime/LocalTime): kotlinx.datetime/LocalDateTime // kotlinx.datetime/atTime|[email protected](kotlinx.datetime.LocalTime){}[0]
@@ -878,18 +882,22 @@ final fun (kotlinx.datetime/LocalDate).kotlinx.datetime/plus(kotlinx.datetime/Da
878882
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]
879883
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]
880884
final fun (kotlinx.datetime/LocalDate).kotlinx.datetime/yearsUntil(kotlinx.datetime/LocalDate): kotlin/Int // kotlinx.datetime/yearsUntil|[email protected](kotlinx.datetime.LocalDate){}[0]
885+
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]
881886
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]
882887
final fun (kotlinx.datetime/LocalDateTime).kotlinx.datetime/toInstant(kotlinx.datetime/TimeZone): kotlinx.datetime/Instant // kotlinx.datetime/toInstant|[email protected](kotlinx.datetime.TimeZone){}[0]
883888
final fun (kotlinx.datetime/LocalDateTime).kotlinx.datetime/toInstant(kotlinx.datetime/UtcOffset): kotlinx.datetime/Instant // kotlinx.datetime/toInstant|[email protected](kotlinx.datetime.UtcOffset){}[0]
889+
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]
884890
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]
885891
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]
886892
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]
887893
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]
888894
final fun (kotlinx.datetime/LocalTime).kotlinx.datetime/atDate(kotlinx.datetime/LocalDate): kotlinx.datetime/LocalDateTime // kotlinx.datetime/atDate|[email protected](kotlinx.datetime.LocalDate){}[0]
889895
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]
896+
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]
890897
final fun (kotlinx.datetime/TimeZone).kotlinx.datetime/offsetAt(kotlinx.datetime/Instant): kotlinx.datetime/UtcOffset // kotlinx.datetime/offsetAt|[email protected](kotlinx.datetime.Instant){}[0]
891898
final fun (kotlinx.datetime/UtcOffset).kotlinx.datetime/asTimeZone(): kotlinx.datetime/FixedOffsetTimeZone // kotlinx.datetime/asTimeZone|[email protected](){}[0]
892899
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]
900+
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]
893901
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]
894902
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]
895903
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)