我需要在 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 与输入格式相同的 DateTime
所以基本上我需要在 java.sql.Timestamp 中更改 DateTime 的时区
我看过其他帖子,其中提到使用 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();
}
谁能告诉我这里出了什么问题,或者还有其他方法可以在 Timezone 上操作 java.sql.Timestamp 吗?
谢谢。