我正在开发一个Java应用程序,其中使用的是Java 8。
我已经集成了多个数据库Oracle、Mysql、Postgres,并在数据库中存储了创建日期。
数据库中的日期格式为- 2015-07-29 16:23:28.143
我从数据库中获取这个日期并将其设置为Localdatetime对象。
myObj.setCreated(rs.getTimestamp("created").toLocalDateTime());
所以问题在于我不想在响应中显示/发送毫秒。我想要像2015-07-29 16:23:28这样显示/发送日期。
我尝试了格式化程序,但失败了,因为它会给出一个字符串,而我不想将LocalDateTime对象更改为字符串,因为这将导致所有Java应用程序的重大更改。所以希望找到解决方案。
有人知道任何解决方案吗?
java.sql.Timestamp
。避免使用那些严重有缺陷的旧日期时间类,它们早已被现代的 java.time 类(JSR 310中定义)所取代。(b) 对于跟踪"创建"时刻,请使用与SQL标准类型TIMESTAMP WITH TIME ZONE
类似的数据类型列(而不是WITHOUT
)。在JDBC 4.2中,它映射到Java类java.time.OffsetDateTime
。如果使用LocalDateTime
,您将丢失宝贵的信息:与UTC的偏移量。例如:OffsetDateTime odt = myResultSet.getObject("created", OffsetDateTime.class).truncatedTo(ChronoUnit.SECONDS);
- Basil Bourque