目前我从oracle表中获取日期作为给我日期以及时间戳的字符串。有没有一种方法可以删除时间戳并从表格中获取日期。目前在我的Java代码日期是声明为字符串,拉日期和timestamp.Thank你将数据从oracle表中拉到java时的时间戳
setDate(rset.getString(1));
目前我从oracle表中获取日期作为给我日期以及时间戳的字符串。有没有一种方法可以删除时间戳并从表格中获取日期。目前在我的Java代码日期是声明为字符串,拉日期和timestamp.Thank你将数据从oracle表中拉到java时的时间戳
setDate(rset.getString(1));
使用ResultSet#getDate()
将只返回日期部分,作为java.sql.Date
(具有时,分,秒和毫秒设置为零)。之后您可以将该对象变成一个字符串Date
。
但是,我会建议将日期信息存储为Date
,而不是String
。
小心使用术语“时间戳”。时间戳是Oracle中的一种数据类型。
如果你问的是如何消除日期中的'时间'部分。您可以在Oracle中使用TRUNC()函数。或者,您不能在Java端使用字符串,而是使用日期,并将格式设置为不显示时间部分。
如果您JDBC driver支持JDBC 4.2或更高版本,它可能是能够处理java.time类型的取代旧java.util.Date/.Calendar和java.sql中的类型。拨打setObject
方法PreparedStatement
和getObject
的ResultSet
。
仅限于日期的类型将在Java中显示为java.time.LocalDate
。仅适用于时间的类型将以java.time.LocalTime
的形式显示在Java中。时间戳(日期时间)将显示为java.time.Instant
。
如果您的驱动程序尚未提供此支持,请回退到使用java.sql
类型,如correct Answer by Matt Ball中所示。然后立即转换为java.time类型。在java.time类型中执行您的业务逻辑;只能使用java.sql类型与数据库进行数据交换。查看旧类上添加的新方法以便于转换。
LocalDate ld = myJavaSqlDate.toLocalDate() ;
LocalTime lt = myJavaSqlTime.toLocalTime() ;
Instant instant = myJavaSqlTimestamp.toInstant() ;
走向另一个方向,看看valueOf
或from
方法。
实际上,'TIMESTAMP'是一个标准术语,[由SQL标准定义的数据类型]之一(https://en.wikipedia.org/wiki/SQL#Data_types)。 –