从数据库中显示java中的时间戳值
问题描述:
数据库中日期的值是
2011-03-19 18:49:04
the value of date in database is 2011-03-19 18:49:04
Timestamp date;
ResultSet rs=smt.executeQuery("select * from posttopic where name='"+logn+"'");
while(rs.next()){
name=rs.getString(1);
title=rs.getString(2);
subject=rs.getString(3);
message=rs.getString(4);
date=rs.getTimestamp(5);
System.out.print(date);
}
上述函数返回的日期值是2011-03-19 18:49:04.0。
the value of date the the above function is returning is 2011-03-19 18:49:04.0.
为什么它最后会附加.0?如何删除它?
Why it is appending .0 at the end?How to remove it?
答
问题是关于格式化日期
/ 时间戳
,而不是内部precision(日期为毫秒)。尝试格式化时间戳
以不显示小数秒,使用 SimpleDateFormat
例如:
时间戳日期;
The question is about formatting the Date
/Timestamp
, not the internal precision (Date holds milliseconds). Try formatting the Timestamp
to not show the fractional seconds, use SimpleDateFormat
for example:
Timestamp date;
ResultSet rs=smt.executeQuery("select * from posttopic where name='"+logn+"'");
// Create a date formatter with pattern as required: year-month-day hour:minute:second
java.text.SimpleDateFormat sdf = new java.text.SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
while(rs.next())
{
name=rs.getString(1);
title=rs.getString(2);
subject=rs.getString(3);
message=rs.getString(4);
date=rs.getTimestamp(5);
System.out.print(sdf.format(date)); // Format the date using the specified pattern.
}