该数据库在UTC有数据,当我试图让数据
java.util.Calendar cal = Calendar.getInstance();
cal.setTimeZone(TimeZone.getTimeZone("UTC"));
java.sql.Timestamp ts = resultSet.getTimestamp(PUBLISH_TIME);
cal.setTime(ts);
这有什么问题呢?
该数据库在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 -看到这个帖子的信息上的名字)。
java.util.Calendar cal = Calendar.getInstance();
cal.setTimeZone(TimeZone.getTimeZone("UTC"));
java.sql.Timestamp ts = resultSet.getTimestamp(PUBLISH_TIME, cal);
这应该做的伎俩!