Joda DateTime到Timestamp的转换

我试图在 Joda中 更改Timestampby 的值:DateTimeZone __

  DateTime dt = new DateTime(rs.getTimestamp("anytimestampcolumn"),

DateTimeZone.forID("anytimezone"));

Timestamp ts = new Timestamp(dt.getMillis());

  • 对于DateTime,值是:2013-04-13T22:56:27.000+03:00

  • 对于TimeStamp,值是:2013-04-13 22:56:27.0

Timestamp 没有时区差异。

如何使用TimeZone获取正确的时间戳? 例如,我想获取“ 2013-05-13 01:56:27.0”。

提前致谢。

使用 MySQL ,列类型TIMESTAMP当然rsResultSet

回答:

实际上,这不是一个重复的问题。这是我几次后解决我的问题的方式:

   int offset = DateTimeZone.forID("anytimezone").getOffset(new DateTime());

这是从所需时区获取偏移的方法。

回到代码,我们从查询的结果集中获取时间戳,并将其与时区一起使用来创建日期时间。

   DateTime dt = new DateTime(rs.getTimestamp("anytimestampcolumn"),

DateTimeZone.forID("anytimezone"));

现在,我们将偏移量添加到日期时间,并从中获取时间戳。

    dt = dt.plusMillis(offset);

Timestamp ts = new Timestamp(dt.getMillis());

也许这不是获得它的实际方法,但是它解决了我的情况。我希望它能对陷在这里的任何人有所帮助。

以上是 Joda DateTime到Timestamp的转换 的全部内容, 来源链接: utcz.com/qa/402237.html

回到顶部