You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Jackson序列化kotlin.time.Duration时数值不符的原因咨询

Jackson序列化kotlin.time.Duration时数值不符的原因咨询

嘿,我最近碰到个挺诡异的问题,用Jackson序列化kotlin.time.Duration的时候,出来的结果完全没法理解,来问问各位大佬!

我写了段简单的测试代码:

import com.fasterxml.jackson.module.kotlin.jacksonObjectMapper
import kotlin.time.DurationUnit
import kotlin.time.toDuration

val x = 1.toDuration(DurationUnit.SECONDS)
val mapper = jacksonObjectMapper()
val y = mapper.writeValueAsString(x)!!
println(y)

我明明定义的是1秒的Duration,结果运行后打印出来的却是2000000000——这数刚好是2秒的纳秒数啊!我翻来覆去检查了好几遍代码,确定Duration的单位是SECONDS,数值也确实是1,实在搞不懂为啥会变成这样。

我的开发环境版本:

  • Kotlin 1.9.21
  • Jackson 2.15.2

有没有人能帮我捋捋这个情况到底是怎么发生的呀?为啥序列化后的结果会是预期值的两倍还转成纳秒了呢?

内容来源于stack exchange

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.04.07 06:44:38