我正在使用Java 8的java应用程序。
我已经集成了数据库(多个数据库Oracle,Mysql,Postgres)以及DB i中的字符串创建日期。
DB中的日期格式为 - 2015-07-29 16:23:28.143
我从DB获取此内容并在Localdatetime对象中设置
myObj.setCreated(rs.getTimestamp("created").toLocalDateTime());
所以这里的问题是我不想在响应中显示/发送毫秒。我想显示/发送日期,如2015-07-29 16:23:28
我尝试了格式化程序,但它失败了,因为它给了字符串,我不想将LocalDateTime对象更改为String,因为这会导致所有Java应用程序发生重大变化。所以想要找到解决方案
任何人都可以知道任何解决方案。
答案 0 :(得分:60)
您可以尝试将此内容删除少于几秒
ldt = ldt.truncatedTo(ChronoUnit.SECONDS);
答案 1 :(得分:47)
只需将它们设置为0
:
myObj.setCreated(rs.getTimestamp("created").toLocalDateTime().withNano(0));
采样/证明:
import java.time.LocalDateTime;
public class DateTimeSample {
public static void main(String[] args) {
LocalDateTime ldt = LocalDateTime.now();
System.out.println(ldt);
System.out.println(ldt.withNano(0));
}
}
输出:
2015-07-30T16:29:11.684
2015-07-30T16:29:11