Я пытаюсь освоиться с Postgres и Kotlin, создав блог для практики. Прямо сейчас я просто работаю с фиктивным контентом, но через пару недель я начну крупный проект. Временные метки, которые я генерирую в моем примере приложения, кажутся сумасшедшими. Что я тут не так делаю?
Я получаю какой-то огромный объект даты, где мне просто нужна временная метка, такая как psql sh:
SELECT * FROM posts;
id | title | content | type | status | datecreated | datemodified
----+-----------+---------------------+-----------+--------+----------------------------+----------------------------
1 | Hey there | This is the content | Hey there | draft | 2019-01-04 20:28:05.978762 | 2019-01-04 20:28:05.978762
Контроллер:
class PostController {
fun index(): ArrayList<Post> {
val posts: ArrayList<Post> = arrayListOf()
transaction {
Posts.selectAll().map { it ->
posts.add(Post(
id = it[Posts.id], content = it[Posts.content],
title = it[Posts.title], type = it[Posts.type],
status = it[Posts.status], dateCreated = it[Posts.dateCreated],
dateModified = it[Posts.dateModified]
))
}
}
return posts
}
}
Класс данных:
import org.joda.time.DateTime
data class Post(
val id: Int,
val title: String,
val content: String,
val type: String,
val status: String,
val dateCreated: DateTime?,
val dateModified: DateTime?
)
Я использую библиотеку Jetbrains Exposed. Ничего подобного в документах не упоминается:
import org.jetbrains.exposed.sql.Table
object Posts : Table() {
val id = integer("id").primaryKey().autoIncrement()
val title = text("title")
val content = text("content")
val type = text("type")
val status = text("status")
val dateCreated = datetime("datecreated")
val dateModified = datetime("datemodified")
}
Ответ:
{
"id": 1,
"title": "Hey there",
"content": "This is the content",
"type": "Hey there",
"status": "draft",
"dateCreated": {
"iMillis": 1546651744314,
"iChronology": {
"iBase": {
"iBase": {
"iBase": {
"iMinDaysInFirstWeek": 4
}
},
"iParam": {
"iZone": {
"iTransitions": [
-9223372036854776000,
...... goes on, seemingly forever