Skip to content

Commit 9cf28f1

Browse files
committed
Try setting date with kotlinx-datetime but it doesn't work as expected
Got `java.lang.IllegalStateException: Field offsetHours is not set`.
1 parent f357307 commit 9cf28f1

File tree

2 files changed

+13
-6
lines changed

2 files changed

+13
-6
lines changed

frameworks/Kotlin/vertx-web-kotlinx/build.gradle.kts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -31,7 +31,7 @@ dependencies {
3131
implementation("org.jetbrains.kotlinx:kotlinx-io-core:0.8.2")
3232

3333
implementation("org.jetbrains.kotlinx:kotlinx-html:0.12.0")
34-
implementation("org.jetbrains.kotlinx:kotlinx-datetime:0.7.1") // TODO try using this in the code
34+
implementation("org.jetbrains.kotlinx:kotlinx-datetime:0.7.1")
3535
}
3636

3737
kotlin.jvmToolchain(25) // Kotlin doesn't support Java 25 yet

frameworks/Kotlin/vertx-web-kotlinx/src/main/kotlin/MainVerticle.kt

Lines changed: 12 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,10 @@ import io.vertx.sqlclient.Row
1818
import io.vertx.sqlclient.RowSet
1919
import io.vertx.sqlclient.Tuple
2020
import kotlinx.coroutines.Dispatchers
21+
import kotlinx.datetime.TimeZone
22+
import kotlinx.datetime.format.DateTimeComponents
23+
import kotlinx.datetime.format.format
24+
import kotlinx.datetime.toLocalDateTime
2125
import kotlinx.html.*
2226
import kotlinx.html.stream.appendHTML
2327
import kotlinx.io.buffered
@@ -26,10 +30,13 @@ import kotlinx.serialization.Serializable
2630
import kotlinx.serialization.SerializationStrategy
2731
import kotlinx.serialization.json.Json
2832
import kotlinx.serialization.json.io.encodeToSink
29-
import java.time.ZonedDateTime
30-
import java.time.format.DateTimeFormatter
33+
import kotlin.time.Clock
3134

3235
class MainVerticle(val hasDb: Boolean) : CoroutineVerticle(), CoroutineRouterSupport {
36+
companion object {
37+
val timeZone = TimeZone.currentSystemDefault()
38+
}
39+
3340
// `PgConnection`s as used in the "vertx" portion offers better performance than `PgPool`s.
3441
lateinit var pgConnection: PgConnection
3542
lateinit var date: String
@@ -40,9 +47,9 @@ class MainVerticle(val hasDb: Boolean) : CoroutineVerticle(), CoroutineRouterSup
4047
lateinit var updateWordQuery: PreparedQuery<RowSet<Row>>
4148

4249
fun setCurrentDate() {
43-
// kotlinx-datetime doesn't support the format yet.
44-
//date = Clock.System.now().toString()
45-
date = DateTimeFormatter.RFC_1123_DATE_TIME.format(ZonedDateTime.now())
50+
date = DateTimeComponents.Formats.RFC_1123.format {
51+
setDateTime(Clock.System.now().toLocalDateTime(timeZone))
52+
}
4653
}
4754

4855
override suspend fun start() {

0 commit comments

Comments
 (0)