Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

How to combine date and time into a single object?

my dao page is receiving date and time from two different field now i want know how to merge these both date and time in a single object so that i calculate time difference and total time. I have this code to merge but it is not working what am i doing wrong in this code please help.

    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);
like image 585
deepak rawat Avatar asked May 03 '17 06:05

deepak rawat


3 Answers

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);
like image 108
Sweeper Avatar answered Nov 19 '22 01:11

Sweeper


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));
    }
like image 43
Jay Smith Avatar answered Nov 19 '22 02:11

Jay Smith


Simple yet effective would be:

LocalDateTime dateTime = LocalDateTime.of(datePart, timePart);
like image 2
Eric Smith Avatar answered Nov 19 '22 02:11

Eric Smith