作者:虎爷在江湖 | 来源:互联网 | 2023-08-06 05:25
数据库包含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()));
编辑:你的评论:
What if I use GMT, would that be an issue in SimpleDateFormat
SimpleDateFormat可以使用通用时区(GMT / – n),RFC822和文本(“如果它们有名称”作为JavaDoc状态 – 有关名称的信息,请参阅this post).