web-dev-qa-db-fra.com

Comment combiner la date et l'heure en un seul objet?

ma page dao reçoit la date et l'heure de deux champs différents maintenant je veux savoir comment fusionner ces deux date et heure dans un seul objet afin que je calcule la différence de temps et le temps total. J'ai ce code à fusionner, mais cela ne fonctionne pas. Qu'est-ce que je fais de mal dans ce code, veuillez aider.

    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);
11
deepak rawat

Vous avez juste besoin d'utiliser les bonnes méthodes, au lieu d'appeler des constructeurs. Utilisez parse pour créer des objets de date et d'heure locale, puis passez les deux objets à la méthode of de LocalDateTime:

    LocalDate datePart = LocalDate.parse("2013-01-02");
    LocalTime timePart = LocalTime.parse("04:05:06");
    LocalDateTime dt = LocalDateTime.of(datePart, timePart);

ÉDITER

Apparemment, vous devez combiner deux objets Date au lieu de 2 chaînes. Je suppose que vous pouvez d'abord convertir les deux dates en chaînes en utilisant SimpleDateFormat. Utilisez ensuite les méthodes indiquées ci-dessus.

String startingDate = new SimpleDateFormat("yyyy-MM-dd").format(startDate);
String startingTime = new SimpleDateFormat("hh:mm:ss").format(startTime);
18
Sweeper

Pour combiner la date et l'heure dans Java 8, vous pouvez utiliser Java.time.LocalDateTime. Cela vous permet également de formater avec Java.time.format.DateTimeFormatter.

Exemple de programme:

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));
    }
4
Jay Smith