Java ResultSet如何以UTC格式获取TimeStamp

时间:2009-09-24 00:32:50

标签: java jdbc

数据库包含UTC数据和我尝试获取数据时的数据

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

这有什么问题吗?

2 个答案:

答案 0 :(得分:28)

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

这应该可以解决问题!

答案 1 :(得分:6)

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

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

中的一个问题

SimpleDateFormat可以使用通用时区(GMT +/- n),RFC822和文本(“如果它们有名称”作为JavaDoc状态 - 请参阅this post了解有关名)。