我在Java中编写了以下函数。此函数通过执行查询返回当前时间戳。功能代码如下:
private String getTimeStamp(){
String timeStamp=null;
try{
String strQuery="select current_timestamp";
PreparedStatement pmtQuery=con.prepareStatement(strQuery);
ResultSet rsQuery=pmtQuery.executeQuery();
rsQuery.next();
timeStamp=rsQuery.getString(1);
JOptionPane.showMessageDialog(null, "Value of timeStamp : "+timeStamp);
}catch(SQLException e){
System.out.println("SQL Exception in the getTimeStamp()");
}
return timeStamp;
}
当我在Windows上使用此功能它提供正确的输出并且工作正常。 防爆。
如果在寡妇执行上面的函数,它会像ex一样给出时间戳。 2011-06-01 17:05:03
但是当我在Debina linux中执行此函数时,它会给出时间戳 2011-06-01 17:05:03.0
它将.0附加到时间戳
请指导我解决这个问题
1.why such different output comes on different system? 2.How to avoid this problem? 3.How to solve this problem?
我正在使用以下配置
窗
windows 7,Mysql数据库,Java 6
Linux
Debian linux,Mysql Database,Java 6
谢谢!
答案 0 :(得分:2)
使用此
SELECT DATE_FORMAT(CURDATE(), '%d/%m/%Y %hh%mm%ss')
注意:强>
我想知道你为什么要查询当前日期
答案 1 :(得分:1)
问题可能是JDBC驱动程序的不同(默认)设置。
我更希望将时间戳作为Timestamp
(java.util.Date
的子类)获取:
import java.sql.Timestamp;
...
Timestamp timeStamp;
...
timeStamp = rsQuery.getTimestamp(1);
通过这种方式,您可以根据需要控制如何在Java代码中格式化它(例如,使用SimpleDateFormat
或String.format
)。
答案 2 :(得分:0)
答案 3 :(得分:0)
您也可以使用
SimpleDateFormat
它是一个简单的日期格式化程序。