From 3b3f1b12e053b552fc00b082d7fc424ef627622b Mon Sep 17 00:00:00 2001 From: Olaf Wintermann Date: Thu, 28 Aug 2025 19:45:25 +0200 Subject: [PATCH] change item pubDate type to java.time.LocalDateTime --- .../src/main/kotlin/de/unixwork/rssreader/Database.kt | 4 ++-- .../src/main/kotlin/de/unixwork/rssreader/Item.kt | 5 +++-- .../src/main/kotlin/de/unixwork/rssreader/MainWindow.kt | 8 +++++++- .../src/main/kotlin/de/unixwork/rssreader/SyncJob.kt | 4 +++- 4 files changed, 15 insertions(+), 6 deletions(-) diff --git a/rss-application/src/main/kotlin/de/unixwork/rssreader/Database.kt b/rss-application/src/main/kotlin/de/unixwork/rssreader/Database.kt index ecb9b8d..eea5562 100644 --- a/rss-application/src/main/kotlin/de/unixwork/rssreader/Database.kt +++ b/rss-application/src/main/kotlin/de/unixwork/rssreader/Database.kt @@ -212,7 +212,7 @@ object Database { item.link = rs.getString("link") item.description = rs.getString("description") item.author = rs.getString("author") - item.pubDate = rs.getTimestamp("pub_date") + item.pubDate = rs.getObject("pub_date", java.time.LocalDateTime::class.java) item.guid = rs.getString("guid") item.contentText = rs.getString("contentText") item.contentHtml = rs.getString("contentHTML") @@ -261,7 +261,7 @@ object Database { stmt.setString(3, item.link) stmt.setString(4, item.description) stmt.setString(5, item.author) - stmt.setTimestamp(6, item.pubDate?.let { java.sql.Timestamp.from(it.toInstant()) }) + stmt.setTimestamp(6, item.pubDate?.let { java.sql.Timestamp.valueOf(it) }) stmt.setString(7, item.guid) stmt.setString(8, item.contentText) stmt.setString(9, item.contentHtml) diff --git a/rss-application/src/main/kotlin/de/unixwork/rssreader/Item.kt b/rss-application/src/main/kotlin/de/unixwork/rssreader/Item.kt index 64c1e18..efd50ee 100644 --- a/rss-application/src/main/kotlin/de/unixwork/rssreader/Item.kt +++ b/rss-application/src/main/kotlin/de/unixwork/rssreader/Item.kt @@ -1,6 +1,7 @@ package de.unixwork.rssreader -import java.util.Date +import java.time.LocalDateTime + class Item(id: Int) { val id = id @@ -9,7 +10,7 @@ class Item(id: Int) { var link: String? = null var description: String? = null var author: String? = null - var pubDate: Date? = null + var pubDate: LocalDateTime? = null var guid: String? = null var contentText: String? = null var contentHtml: String? = null diff --git a/rss-application/src/main/kotlin/de/unixwork/rssreader/MainWindow.kt b/rss-application/src/main/kotlin/de/unixwork/rssreader/MainWindow.kt index fc7726f..7795fb8 100644 --- a/rss-application/src/main/kotlin/de/unixwork/rssreader/MainWindow.kt +++ b/rss-application/src/main/kotlin/de/unixwork/rssreader/MainWindow.kt @@ -10,12 +10,16 @@ import de.unixwork.ui.kotlin.Toplevel import de.unixwork.ui.kotlin.sidebarWindow import de.unixwork.ui.kotlin.dialogWindow import de.unixwork.ui.kotlin.openFileDialog +import java.time.format.DateTimeFormatter class MainWindow { val window : Toplevel val sourceList = FeedSourceList() val feedList = FeedList() + // TODO: date format config + val formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss") + init { window = sidebarWindow("RSS Reader") { sidebar { @@ -71,7 +75,9 @@ class MainWindow { var result: String? = null when(col) { 0 -> result = elm.title - 1 -> result = elm.pubDate.toString() + 1 -> { + result = elm.pubDate?.format(formatter) + } } result } diff --git a/rss-application/src/main/kotlin/de/unixwork/rssreader/SyncJob.kt b/rss-application/src/main/kotlin/de/unixwork/rssreader/SyncJob.kt index dee94c9..91febb7 100644 --- a/rss-application/src/main/kotlin/de/unixwork/rssreader/SyncJob.kt +++ b/rss-application/src/main/kotlin/de/unixwork/rssreader/SyncJob.kt @@ -48,7 +48,9 @@ class SyncJob { item.link = entry.link item.description = entry.description?.value item.author = entry.author - item.pubDate = entry.publishedDate + entry.publishedDate?.let { + item.pubDate = it.toInstant().atZone(java.time.ZoneId.systemDefault()).toLocalDateTime() + } item.guid = entry.uri val contents = entry.contents contents.forEach { content -> -- 2.47.3