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