组合两个Date实例以使用Joda创建日期时间

时间:2015-06-05 02:31:42

标签: java date datetime

我有两个java.util.Date个实例,其中包含日期值和时间值。现在我想组合这些值来创建表示日期和时间的单个java.util.Date实例。

这里有一些例子来说明我想要的东西:

      Date date = 2015-06-01;
      Date time = 22:30;

合并到:

     Date dateTime = 2015-06-01 22:30;

我做了一些搜索,我发现了这个问题 Combining java.util.Dates to create a date-time 这与我目前的问题类似。但是这个问题的选择答案已被弃用。

2 个答案:

答案 0 :(得分:4)

您可以使用日历

在没有JODA的情况下执行此操作

但是,正如您询问JODA一样,以下是JODA的方法:

// you want the date part from it
Date d = new SimpleDateFormat("yyyy-MM-dd hh:mm:ss").parse("2013-01-02 03:04:05");

// you want to time part from it
Date t = new SimpleDateFormat("yyyy-MM-dd hh:mm:ss").parse("2014-02-03 04:05:06");


LocalDate datePart = new LocalDate(d);
LocalTime timePart = new LocalTime(t);
LocalDateTime dateTime = datePart.toLocalDateTime(timePart);
Date result = dateTime.toDate();

// Or shrink the above 4 lines into one, as follow
// Date result = new LocalDate(d).toLocalDateTime(new LocalTime(t)).toDate();

System.out.println("result " + result);
// print out result Wed Jan 02 04:05:06 CST 2013

答案 1 :(得分:1)

改为使用日历?

特别是set(int year, int month, int date, int hourOfDay, int minute)
如果您想要日期,请使用getTime()

或使用Calendar类中的setTime(Date ..)函数将Date对象转换为Calendar对象,使用Calendar类中的函数提取值(日,小时,分钟)?