Java ResultSet如何以UTC格式获取TimeStamp [英] Java ResultSet how to getTimeStamp in UTC

查看:131
本文介绍了Java ResultSet如何以UTC格式获取TimeStamp的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

数据库包含UTC数据,当我尝试获取数据时

The database has data in UTC and when I try to get data

java.util.Calendar cal = Calendar.getInstance();
cal.setTimeZone(TimeZone.getTimeZone("UTC"));
java.sql.Timestamp ts = resultSet.getTimestamp(PUBLISH_TIME);
cal.setTime(ts);

这有什么问题吗?

推荐答案

您的DateFormat实例很可能以当地时间显示该值。显示您的值时,请尝试:

Your DateFormat instance is most likely displaying the value in local time. When displaying your value, give this a try:

java.util.Calendar cal = Calendar.getInstance();
cal.setTimeZone(TimeZone.getTimeZone("UTC"));
java.sql.Timestamp ts = resultSet.getTimestamp(PUBLISH_TIME);
cal.setTime(ts);

SimpleDateFormat sdf = new SimpleDateFormat("HH:mm:ss z");
sdf.setTimeZone(TimeZone.getTimeZone("UTC"));
System.out.println(sdf.format(cal.getTime()));

编辑:发表评论:


如果我使用GMT怎么办?这会是SimpleDateFormat中的一个问题

What if I use GMT, would that be an issue in SimpleDateFormat

SimpleDateFormat 可以使用通用时区(GMT +/- n), RFC822 和文本(如果他们有名字作为JavaDoc状态 - 请参阅这篇文章有关名称的信息。)

SimpleDateFormat can use general timezones (GMT +/- n), RFC822, and text ("if they have names" as the JavaDoc states - see this post for info on the names).

这篇关于Java ResultSet如何以UTC格式获取TimeStamp的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆