LocalDateTime删除毫秒

时间:2015-07-30 14:23:42

标签: java database date java-8

我正在使用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应用程序发生重大变化。所以想要找到解决方案

任何人都可以知道任何解决方案。

2 个答案:

答案 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