How to combine date and time into a single object?
Solution 1:
You just need to use the correct methods, instead of calling constructors. Use parse
to create local date and local time objects, then pass the two objects to the of
method of LocalDateTime
:
LocalDate datePart = LocalDate.parse("2013-01-02");
LocalTime timePart = LocalTime.parse("04:05:06");
LocalDateTime dt = LocalDateTime.of(datePart, timePart);
EDIT
Apparently, you need to combine two Date
objects instead of 2 strings. I guess you can first convert the two dates to strings using SimpleDateFormat
. Then use the methods shown above.
String startingDate = new SimpleDateFormat("yyyy-MM-dd").format(startDate);
String startingTime = new SimpleDateFormat("hh:mm:ss").format(startTime);
Solution 2:
To combine date and time in java 8 you can use java.time.LocalDateTime
.
This also allows you to format with java.time.format.DateTimeFormatter
.
Example program:
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));
}
Solution 3:
Simple yet effective would be:
LocalDateTime dateTime = LocalDateTime.of(datePart, timePart);