Java的ResultSet中如何在UTC到getTimeStamp(Java ResultSet

2019-07-19 05:26发布

该数据库在UTC有数据,当我试图让数据

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

这有什么问题呢?

Answer 1:

你的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 -看到这个帖子的信息上的名字)。



Answer 2:

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

这应该做的伎俩!



文章来源: Java ResultSet how to getTimeStamp in UTC
标签: java jdbc