如何将日期和时间组合成单个对象?

时间:2017-05-03 06:24:06

标签: java datetime java-8

我的dao页面正在从两个不同的字段接收日期和时间现在我想知道如何在单个对象中合并这些日期和时间,以便我计算时差和总时间。我有这个代码合并但它不工作我在这个代码中做错了请帮助。

    Date d = new SimpleDateFormat("yyyy-MM-dd").parse("2013-01-02");
    Date t = new SimpleDateFormat("hh:mm:ss").parse("04:05:06");
    LocalDate datePart = new LocalDate(d);
    LocalTime timePart = new LocalTime(t);
    LocalDateTime dateTime = datePart.toLocalDateTime(timePart);
    System.out.println(dateTime);

3 个答案:

答案 0 :(得分:14)

您只需要使用正确的方法,而不是调用构造函数。使用parse创建本地日期和本地时间对象,然后将这两个对象传递给of的{​​{1}}方法:

LocalDateTime

修改

显然,您需要组合两个 LocalDate datePart = LocalDate.parse("2013-01-02"); LocalTime timePart = LocalTime.parse("04:05:06"); LocalDateTime dt = LocalDateTime.of(datePart, timePart); 个对象而不是两个字符串。我想您可以先使用Date将两个日期转换为字符串。然后使用上面显示的方法。

SimpleDateFormat

答案 1 :(得分:4)

要在java 8中组合日期和时间,您可以使用java.time.LocalDateTime。 这也允许您使用java.time.format.DateTimeFormatter进行格式化。

示例程序:

public static void main(String[] args) {
        LocalDate date = LocalDate.of(2013, 1, 2);
        LocalTime time = LocalTime.of(4, 5, 6);
        LocalDateTime localDateTime = LocalDateTime.of(date, time);
        DateTimeFormatter format = DateTimeFormatter.ofPattern("MMM d yyyy  hh:mm a");
        System.out.println(localDateTime.format(format));
    }

答案 2 :(得分:0)

简单但有效的方法是:

LocalDateTime dateTime = LocalDateTime.of(datePart, timePart);