我有一个String类型的数组,它保存数据库中的列,其中包含日期和时间值,如2014-11-12 16:08:48。现在我必须拆分数组,以便只检索时间值,即16:08:48。如何在阵列上应用split?
提前致谢。
我检索列值的代码是
public String[] getChartTime() throws SQLException {
List < String > timeStr = new ArrayList < String > ();
String atime[] = null;
getConnection();
try {
con = getConnection();
String sql = "exec vcs_gauge @gauge_name=?,@first_rec_time=?,@last_rec_time=?";
DateFormat df = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
System.out.println("date is " + df.format(currentDate));
clstmt = con.prepareCall(sql);
clstmt.setString(1, "vs3_bag");
clstmt.setString(2, "2014-09-01 10:00:00");
clstmt.setString(3, "2014-09-01 11:00:00");
clstmt.execute();
rs = clstmt.getResultSet();
while (rs.next()) {
// Just get the value of the column, and add it to the list
timeStr.add(rs.getString(1));
}
} catch (Exception e) {
System.out.println("\nException in Bean in getDbTable(String code):" + e);
} finally {
closeConnection();
}
// I would return the list here, but let's convert it to an array
atime = timeStr.toArray(new String[timeStr.size()]);
return atime;
}
&#13;
现在我想分割timestr数组,以便我只有时间,没有日期。
答案 0 :(得分:1)
您可以使用String.split()
方法使用space
作为分隔符。您可以使用以下代码执行此操作:
String[] atime = new String[3600];
Iterator<String> it = timeStr.iterator();
int i = 0;
while(it.hasNext()) {
atime[i] = it.next().toString().split("\\s")[1]; /* stores each time in each index of atime */
i++;
}
执行此操作后,结果将在String数组atime[]
中。
答案 1 :(得分:1)
您只需使用以下代码执行此操作:
// Just get the value of the column, and add it to the list
timeStr.add(rs.getString(1).split(" ")[1]);
答案 2 :(得分:0)
我通过使用子字符串解决了我的问题。代码是
while (rs.next()) {
// Just get the value of the column, and add it to the list
timeStr.add(rs.getString(1).substring(11, 16));
}
&#13;