2016-05-16 54 views
0

我有一个java servlet,它调用一个名为OAVDbUtil.java的Java类中的方法来从SQL数据库中获取日期。我可以检索日期,但不是完整的值。在SQL Server数据库中,该字段为“EventTime”,是日期时间字段,日期数据为示例;从数据库检索java中的完整日期

2015-02-16 11:48:15.730 

在OAVDbUtil.java我的代码来检索设定的结果值,并将其放置在这样的变量,其中日期是类型java.sql.Date的

Date loginDate = myRs.getDate("EventTime"); 

但它将检索数据为“2015-02-16”。如何将日期检索为“2015-02-16 11:48:15.730”?

+0

这可能包含一个答案。如果我将它转换为一个字符串,然后simpledateformat对象,请参阅http://stackoverflow.com/questions/10338874/java-date-and-time-formatting。我会尝试。 – AJF

+0

如果你这样做,你需要确保数据库的日期格式永远不会改变。根据我的回答,最好使用JDBC Timestamp。 – dcsohl

回答

2

这很混乱,但重要的是要注意,不像java.util.Datejava.sql.Date真的是只是的日期。当日时间为而非包括在内。

对于你想要的,你应该使用java.sql.Timestamp

+0

感谢您的及时响应。这工作除了一件事情,数据库中的时间戳是2015年2月16日11:48:15.730,但Java.sql.Timestamp删除在最后的零使它2015-02-16 11:48:15.73。我能阻止这个吗? – AJF

+0

重要的是要注意'java.sql.Timestamp'是'java.util.Date'的子类。这意味着您可以使用'java.text.DateFormat'(或子类)对其进行格式化。 'SimpleDateFormat sdf = new SimpleDateFormat(“YYYY-MM-dd HH:mm:ss.SSS”); System.out.println(sdf.format(ts));' – dcsohl

+0

我找到了一种方式来起诉SimpleDateFormatter并使用EventTime代替TimeStamp的字符串。这会输出我想要的内容,但在下一阶段使用该值询问数据库时可能会导致问题 – AJF