我正在尝试访问代表datetimetz
ABL 类型的数据库字段。我试过ResultSet.getTimestamp(int)
哪个应该是正确的,尽管司机抱怨[DataDirect][OpenEdge JDBC Driver]Value can not be converted to requested type.
。
ResultSet
我已经尝试了所有没有工作的日期和时间获取器。调用ResultSet.getObject(int)
返回 aString
表示该值,但是该值是一种非标准格式,它实际上有一个怪癖,因此很难用 a 解析SimpleDateFormat
,这种格式看起来像“ 2013-03-08 21:55:10:903 + 11:00
”。
从这个古怪的日期开始,由于时区限定符后面的空格,它不能用格式字符串干净地解析+/-
,我不得不求助于以下丑陋的方法:
String r = rs.getString(col);
if (r == null) {
return null;
}
DateFormat df = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss:SSSXXX",
Locale.getDefault());
try {
return df.parse(r.substring(0, 23)
+ r.substring(24, 25)
+ r.substring(26));
} catch (ParseException ex) {
return null;
}
我正在使用 OpenEdge 10.1.C04