我需要对java.sql.Timestamp进行操作。
函数输入为:格式化后的java.sql.Timestamp日期时间
可能的日期格式有:MM/dd/yyyy hh:mm:ss aa,MM/dd/yyyy hh:mm:ss,MM/dd/yyyy hh:mm aa,MM/dd/yyyy HH:mm,MM/dd/yy hh:mm aa,MM/dd/yy HH:mm,MM/dd/yyyy和其他一些
所需输出:
在另一个时区中的java.sql.Timestamp与输入相同格式化的日期时间
基本上,我需要更改java.sql.Timestamp的时区
我看到其他帖子中提到使用JODA,但由于某些限制,我无法使用它。
我尝试了以下方法: - 将java.sql.Timestamp转换为java.date.Calendar, - 然后更改时区, - 然后将其转换为日期 - 格式化日期以获得相同格式的日期时间
请参见以下代码:
Timestamp ts = "2012-06-20 18:22:42.0"; // I get this type of value from another function
Calendar cal = Calendar.getInstance();
cal.setTime(ts);
cal.add(Calendar.HOUR, -8);
String string = cal.getTime().toString(); // return value is in " DAY MMM dd hh:mm:ss PDT yyyy " format i.e. Wed Jun 20 10:22:42 PDT 2012
SimpleDateFormat formatter = new SimpleDateFormat("MM/dd/yyyy hh:mm:ss"); // This could be any format required
Date date;
try {
date = formatter.parse(string); // I am getting exception here on parsing
} catch (ParseException e1) {
e1.printStackTrace();
}
有人能告诉我这里出了什么问题吗,或者有没有其他方法可以操作java.sql.Timestamp的时区?
谢谢。
java.sql.Timestamp
没有时区信息,因此无法更改。 - Mark Rotteveel