From e171910daaa85c0e3f720abd8cba45d6fd385a2f Mon Sep 17 00:00:00 2001 From: Graham Borland Date: Tue, 7 Feb 2023 12:55:07 +0000 Subject: [PATCH 1/3] Add clock converter and test --- core/jvm/src/Converters.kt | 8 ++++++++ core/jvm/test/ConvertersTest.kt | 11 +++++++++++ 2 files changed, 19 insertions(+) diff --git a/core/jvm/src/Converters.kt b/core/jvm/src/Converters.kt index 6db8339d..2f1c8ddb 100644 --- a/core/jvm/src/Converters.kt +++ b/core/jvm/src/Converters.kt @@ -93,3 +93,11 @@ public fun UtcOffset.toJavaZoneOffset(): java.time.ZoneOffset = this.zoneOffset */ public fun java.time.ZoneOffset.toKotlinUtcOffset(): UtcOffset = UtcOffset(this) +/** + * Converts this [java.time.Clock][java.time.Clock] to a [kotlinx.datetime.Clock][Clock]. + */ +public fun java.time.Clock.toKotlinClock(): Clock = this.let { + object : Clock { + override fun now() = it.instant().toKotlinInstant() + } +} diff --git a/core/jvm/test/ConvertersTest.kt b/core/jvm/test/ConvertersTest.kt index dccd86f4..c284cfcd 100644 --- a/core/jvm/test/ConvertersTest.kt +++ b/core/jvm/test/ConvertersTest.kt @@ -187,4 +187,15 @@ class ConvertersTest { test("+08") test("-103030") } + + @Test + fun clock() { + val jtInstant = java.time.Instant.parse("2023-02-07T12:46:52.13Z") + val jtClock = java.time.Clock.fixed(jtInstant, ZoneId.of("UTC")) + val ktClock = jtClock.toKotlinClock() + + assertEquals(jtClock.instant().epochSecond, ktClock.now().epochSeconds) + assertEquals(jtClock.instant().toEpochMilli(), ktClock.now().toEpochMilliseconds()) + assertEquals(jtClock.instant().toEpochMilli(), ktClock.now().toEpochMilliseconds()) + } } From 871c61d5ec040e5236ad185727f314d9c9779fe5 Mon Sep 17 00:00:00 2001 From: Graham Borland Date: Tue, 7 Feb 2023 12:57:45 +0000 Subject: [PATCH 2/3] Remove duplicate line --- core/jvm/test/ConvertersTest.kt | 1 - 1 file changed, 1 deletion(-) diff --git a/core/jvm/test/ConvertersTest.kt b/core/jvm/test/ConvertersTest.kt index c284cfcd..4c71cca1 100644 --- a/core/jvm/test/ConvertersTest.kt +++ b/core/jvm/test/ConvertersTest.kt @@ -196,6 +196,5 @@ class ConvertersTest { assertEquals(jtClock.instant().epochSecond, ktClock.now().epochSeconds) assertEquals(jtClock.instant().toEpochMilli(), ktClock.now().toEpochMilliseconds()) - assertEquals(jtClock.instant().toEpochMilli(), ktClock.now().toEpochMilliseconds()) } } From 9889976728edb5e66d856e9f9245dee7989f4fa0 Mon Sep 17 00:00:00 2001 From: Graham Borland Date: Wed, 1 Mar 2023 12:58:03 +0000 Subject: [PATCH 3/3] Remove .let --- core/jvm/src/Converters.kt | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/core/jvm/src/Converters.kt b/core/jvm/src/Converters.kt index 2f1c8ddb..4a33f08c 100644 --- a/core/jvm/src/Converters.kt +++ b/core/jvm/src/Converters.kt @@ -96,8 +96,6 @@ public fun java.time.ZoneOffset.toKotlinUtcOffset(): UtcOffset = UtcOffset(this) /** * Converts this [java.time.Clock][java.time.Clock] to a [kotlinx.datetime.Clock][Clock]. */ -public fun java.time.Clock.toKotlinClock(): Clock = this.let { - object : Clock { - override fun now() = it.instant().toKotlinInstant() - } +public fun java.time.Clock.toKotlinClock(): Clock = object : Clock { + override fun now() = instant().toKotlinInstant() }