我在尝试将java.sql.Timestamp
类型的对象转换为时间对象org.joda.time.DateTime
时尝试了一些stange问题。详细地说,时区设置不正确。
这是我的代码(scala语言):
val receptionDate =
new DateTime(tuple("RECEPTION_TIMESTAMP").asInstanceOf[Timestamp].getTime(),
DateTimeZone.UTC)
直接从数据库表(HBase)读取Timestamp
对象,SQuirreL客户端显示的值如下:
2015-07-30 00:00:00.0
相反,创建的DateTime
对象具有值2015-07-29 22:00:00.0
。显然,在创建DateTime
对象期间,不会使用我传递给构造函数的时区DateTimeZone.UTC
的信息。
我做错了什么?错误在哪里?
答案 0 :(得分:0)
此问题是由于您使用 本地时区(UTC-2) 来存储日期而未指定 UTC时区 ,但是当您使用设置 UTC时区 从 Hbase 检索日期时。所以他们是平等的,但不一样Timezone
。