我试图在epoch之后花费几秒钟并将其转换为Scala中的DateTime对象。我用的是joda。不幸的是,无论是使用秒还是毫秒,我都会得到奇怪的结果。我在这里做错了什么?
scala> new org.joda.time.DateTime(1378607203*1000)
res2: org.joda.time.DateTime = 1969-12-31T02:31:40.984Z
scala> new org.joda.time.DateTime(1378607203)
res3: org.joda.time.DateTime = 1970-01-16T22:56:47.203Z
答案 0 :(得分:35)
检查快速REPL会话:
scala> 1378607203 * 1000
res6: Int = -77299016
奇怪,不是吗?你能猜出为什么会这样吗?
我会给你一个从你试图使用的DateTime
构造函数中提取的提示。
DateTime(long instant)
仍然没有得到它?让我们尝试稍微不同的版本:
scala> 1378607203L * 1000
res8: Long = 1378607203000
注意L
表示Long类型的文字。你要求1万亿! Int只能达到2亿:
scala> Int.MaxValue
res7: Int = 2147483647
这样做DateTime(1378607203L*1000)
会使它发挥作用。