Java ResultSet如何以UTC格式获取TimeStamp
数据库包含UTC数据,当我尝试获取数据时
java.util.Calendar cal = Calendar.getInstance(); cal.setTimeZone(TimeZone.getTimeZone("UTC")); java.sql.Timestamp ts = resultSet.getTimestamp(PUBLISH_TIME); cal.setTime(ts);
这有什么不对吗?
您的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状态 – 请参阅此post以获取有关名称的信息)。
java.util.Calendar cal = Calendar.getInstance(); cal.setTimeZone(TimeZone.getTimeZone("UTC")); java.sql.Timestamp ts = resultSet.getTimestamp(PUBLISH_TIME, cal);
这应该做的伎俩!