datetimetzABL タイプを表す DB フィールドにアクセスしようとしています。ドライバーResultSet.getTimestamp(int)は[DataDirect][OpenEdge JDBC Driver]Value can not be converted to requested type..
私はすべての日付と時刻のゲッターを試しましたResultSetが、どれも機能しませんでした。を呼び出すと、値を表すResultSet.getObject(int)a が返されますStringが、この値は標準外の形式であり、実際には 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 を使用しています