我是Java新手。我正在从字符串数组中的数据库中检索我的第一列,该数组表示数据:
2014-09-01 10:00:00.000
现在我想只显示时间:
10:00:00
怎么做? 我检索我的专栏的代码是:
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()]);
for (String s: atime) {
System.out.println(s);
}
return atime;
}
答案 0 :(得分:6)
使用SimpleDateFormat
:
java.util.Date date = new java.util.Date();
SimpleDateFormat sdf = new SimpleDateFormat("HH:mm:ss");
System.out.println(sdf.format(date));
如果您将日期作为String,则可以在之前的步骤中将其解析为java.util.Date:
SimpleDateFormat sdf = new SimpleDateFormat("YOUR_DATE_PATTERN");
Date date = sdf.parse(string);
根据https://docs.oracle.com/javase/7/docs/api/java/text/SimpleDateFormat.html
使用模式答案 1 :(得分:3)
如果我已正确理解了问题2014-09-01 10:00:00.000
是字符串,则必须从中提取10:00:00
。以下是我的解决方案。
.
作为分隔符再次拆分字符串并从中获取第一个字符串。上述事情是使用该行完成的。
str.split("\\s")[1].split("\\.")[0];
String str = new String("2014-09-01 10:00:00.000");
String time = str.split("\\s")[1].split("\\.")[0];
System.out.print(time);
10:00:00
有关详细信息,请查看以下链接:
答案 2 :(得分:2)
import java.text.DateFormat;
import java.text.SimpleDateFormat;
import java.util.Date;
public class MyDate {
public static void main(String[] args){
DateFormat dateFormat = new SimpleDateFormat("hh:mm:ss a");
Date date = new Date();
String time=dateFormat.format(date);
System.out.println(time);
}
}
答案 3 :(得分:0)
我知道了,只需使用substring()作为
while(rs.next()) {
// Just get the value of the column, and add it to the list
timeStr.add(rs.getString(1).substring(11,16));
}