2017-06-20 2 views
-1

J'ai une liste complète d'objets de classe qui contient deux propriétés: timeStart et timeEnd.DateTime Joda comparaison

Les deux sont des objets Joda DateTime.

J'essaie d'obtenir que les objets où timeStart est beforeNow & & timeEnd est afterNow, ainsi que timeStart est afterNow() & & timeEnd est afterNow(). Mais sérieusement, je reçois la plupart des objets, même s'ils ne passent pas ma condition (en théorie).

Je suppose que le problème est à la comparaison des fonctions intégrées de JodaTime (Timezones?)

Le code:

Main.log.info("Now: " + DateTime.now()); 
    for(ChannelProgramBase base : programs) { 

     if(base.getTimeStart().isBeforeNow() && base.getTimeEnd().isAfterNow() || base.getTimeStart().isAfterNow() && base.getTimeEnd().isAfterNow()) { 


      Main.log.info("Add: " + base.getTimeStart() + " - " + base.getTimeEnd()); 
      programsToPlay.add(base); 
     } 
    } 

La sortie correspondante:

[INFO ] 2017-06-20 09:44:16.941 [PlayerHandler-Thread] line 51 - Now: 2017-06-20T09:44:16.941+02:00 
[INFO ] 2017-06-20 09:44:16.942 [PlayerHandler-Thread] line 57 - Add: 2017-06-20T00:00:00.000Z - 2017-06-20T23:55:00.000Z 
[INFO ] 2017-06-20 09:44:16.942 [PlayerHandler-Thread] line 57 - Add: 2017-06-20T07:45:00.000Z - 2017-06-20T07:50:00.000Z 
[INFO ] 2017-06-20 09:44:16.942 [PlayerHandler-Thread] line 57 - Add: 2017-06-20T08:00:00.000Z - 2017-06-20T08:05:00.000Z 
[INFO ] 2017-06-20 09:44:16.942 [PlayerHandler-Thread] line 57 - Add: 2017-06-20T08:15:00.000Z - 2017-06-20T08:20:00.000Z 
[INFO ] 2017-06-20 09:44:16.942 [PlayerHandler-Thread] line 57 - Add: 2017-06-20T08:30:00.000Z - 2017-06-20T08:35:00.000Z 
[INFO ] 2017-06-20 09:44:16.942 [PlayerHandler-Thread] line 57 - Add: 2017-06-20T08:45:00.000Z - 2017-06-20T08:50:00.000Z 
[INFO ] 2017-06-20 09:44:16.943 [PlayerHandler-Thread] line 57 - Add: 2017-06-20T09:00:00.000Z - 2017-06-20T09:05:00.000Z 
[INFO ] 2017-06-20 09:44:16.943 [PlayerHandler-Thread] line 57 - Add: 2017-06-20T09:15:00.000Z - 2017-06-20T09:20:00.000Z 
[INFO ] 2017-06-20 09:44:16.943 [PlayerHandler-Thread] line 57 - Add: 2017-06-20T09:35:00.000Z - 2017-06-20T09:40:00.000Z 
[INFO ] 2017-06-20 09:44:16.943 [PlayerHandler-Thread] line 57 - Add: 2017-06-20T10:00:00.000Z - 2017-06-20T10:05:00.000Z 
[INFO ] 2017-06-20 09:44:16.943 [PlayerHandler-Thread] line 57 - Add: 2017-06-20T10:15:00.000Z - 2017-06-20T10:20:00.000Z 
[INFO ] 2017-06-20 09:44:16.943 [PlayerHandler-Thread] line 57 - Add: 2017-06-20T10:30:00.000Z - 2017-06-20T10:35:00.000Z 
[INFO ] 2017-06-20 09:44:16.943 [PlayerHandler-Thread] line 57 - Add: 2017-06-20T10:45:00.000Z - 2017-06-20T10:50:00.000Z 
[INFO ] 2017-06-20 09:44:16.944 [PlayerHandler-Thread] line 57 - Add: 2017-06-20T11:00:00.000Z - 2017-06-20T11:05:00.000Z 
[INFO ] 2017-06-20 09:44:16.944 [PlayerHandler-Thread] line 57 - Add: 2017-06-20T11:15:00.000Z - 2017-06-20T11:20:00.000Z 
[INFO ] 2017-06-20 09:44:16.944 [PlayerHandler-Thread] line 57 - Add: 2017-06-20T11:30:00.000Z - 2017-06-20T11:35:00.000Z 
[INFO ] 2017-06-20 09:44:16.944 [PlayerHandler-Thread] line 57 - Add: 2017-06-20T11:45:00.000Z - 2017-06-20T11:50:00.000Z 
[INFO ] 2017-06-20 09:44:16.944 [PlayerHandler-Thread] line 57 - Add: 2017-06-20T12:00:00.000Z - 2017-06-20T12:05:00.000Z 
[INFO ] 2017-06-20 09:44:16.944 [PlayerHandler-Thread] line 57 - Add: 2017-06-20T12:15:00.000Z - 2017-06-20T12:20:00.000Z 
[INFO ] 2017-06-20 09:44:16.944 [PlayerHandler-Thread] line 57 - Add: 2017-06-20T12:30:00.000Z - 2017-06-20T12:35:00.000Z 
[INFO ] 2017-06-20 09:44:16.945 [PlayerHandler-Thread] line 57 - Add: 2017-06-20T12:45:00.000Z - 2017-06-20T12:50:00.000Z 
[INFO ] 2017-06-20 09:44:16.945 [PlayerHandler-Thread] line 57 - Add: 2017-06-20T13:00:00.000Z - 2017-06-20T13:05:00.000Z 
[INFO ] 2017-06-20 09:44:16.945 [PlayerHandler-Thread] line 57 - Add: 2017-06-20T13:15:00.000Z - 2017-06-20T13:20:00.000Z 
[INFO ] 2017-06-20 09:44:16.945 [PlayerHandler-Thread] line 57 - Add: 2017-06-20T13:30:00.000Z - 2017-06-20T13:35:00.000Z 
[INFO ] 2017-06-20 09:44:16.945 [PlayerHandler-Thread] line 57 - Add: 2017-06-20T13:45:00.000Z - 2017-06-20T13:50:00.000Z 
[INFO ] 2017-06-20 09:44:16.945 [PlayerHandler-Thread] line 57 - Add: 2017-06-20T14:00:00.000Z - 2017-06-20T14:05:00.000Z 
[INFO ] 2017-06-20 09:44:16.945 [PlayerHandler-Thread] line 57 - Add: 2017-06-20T14:15:00.000Z - 2017-06-20T14:20:00.000Z 
[INFO ] 2017-06-20 09:44:16.946 [PlayerHandler-Thread] line 57 - Add: 2017-06-20T14:30:00.000Z - 2017-06-20T14:35:00.000Z 
[INFO ] 2017-06-20 09:44:16.946 [PlayerHandler-Thread] line 57 - Add: 2017-06-20T14:45:00.000Z - 2017-06-20T14:50:00.000Z 
[INFO ] 2017-06-20 09:44:16.946 [PlayerHandler-Thread] line 57 - Add: 2017-06-20T15:00:00.000Z - 2017-06-20T15:05:00.000Z 
[INFO ] 2017-06-20 09:44:16.946 [PlayerHandler-Thread] line 57 - Add: 2017-06-20T15:15:00.000Z - 2017-06-20T15:20:00.000Z 
[INFO ] 2017-06-20 09:44:16.946 [PlayerHandler-Thread] line 57 - Add: 2017-06-20T15:30:00.000Z - 2017-06-20T15:35:00.000Z 
[INFO ] 2017-06-20 09:44:16.946 [PlayerHandler-Thread] line 57 - Add: 2017-06-20T15:45:00.000Z - 2017-06-20T15:50:00.000Z 
[INFO ] 2017-06-20 09:44:16.946 [PlayerHandler-Thread] line 57 - Add: 2017-06-20T16:00:00.000Z - 2017-06-20T16:05:00.000Z 
[INFO ] 2017-06-20 09:44:16.947 [PlayerHandler-Thread] line 57 - Add: 2017-06-20T16:15:00.000Z - 2017-06-20T16:20:00.000Z 
[INFO ] 2017-06-20 09:44:16.947 [PlayerHandler-Thread] line 57 - Add: 2017-06-20T16:30:00.000Z - 2017-06-20T16:35:00.000Z 
[INFO ] 2017-06-20 09:44:16.947 [PlayerHandler-Thread] line 57 - Add: 2017-06-20T16:45:00.000Z - 2017-06-20T16:50:00.000Z 
[INFO ] 2017-06-20 09:44:16.947 [PlayerHandler-Thread] line 57 - Add: 2017-06-20T17:00:00.000Z - 2017-06-20T17:05:00.000Z 
[INFO ] 2017-06-20 09:44:16.947 [PlayerHandler-Thread] line 57 - Add: 2017-06-20T17:15:00.000Z - 2017-06-20T17:20:00.000Z 
[INFO ] 2017-06-20 09:44:16.947 [PlayerHandler-Thread] line 57 - Add: 2017-06-20T17:30:00.000Z - 2017-06-20T17:35:00.000Z 
[INFO ] 2017-06-20 09:44:16.948 [PlayerHandler-Thread] line 57 - Add: 2017-06-20T17:45:00.000Z - 2017-06-20T17:50:00.000Z 
[INFO ] 2017-06-20 09:44:16.948 [PlayerHandler-Thread] line 57 - Add: 2017-06-20T18:00:00.000Z - 2017-06-20T18:05:00.000Z 
[INFO ] 2017-06-20 09:44:16.948 [PlayerHandler-Thread] line 57 - Add: 2017-06-20T18:15:00.000Z - 2017-06-20T18:20:00.000Z 
[INFO ] 2017-06-20 09:44:16.948 [PlayerHandler-Thread] line 57 - Add: 2017-06-20T18:30:00.000Z - 2017-06-20T18:35:00.000Z 
[INFO ] 2017-06-20 09:44:16.948 [PlayerHandler-Thread] line 57 - Add: 2017-06-20T18:45:00.000Z - 2017-06-20T18:50:00.000Z 
[INFO ] 2017-06-20 09:44:16.948 [PlayerHandler-Thread] line 57 - Add: 2017-06-20T19:00:00.000Z - 2017-06-20T19:05:00.000Z 
[INFO ] 2017-06-20 09:44:16.948 [PlayerHandler-Thread] line 57 - Add: 2017-06-20T19:15:00.000Z - 2017-06-20T19:20:00.000Z 
[INFO ] 2017-06-20 09:44:16.948 [PlayerHandler-Thread] line 57 - Add: 2017-06-20T19:30:00.000Z - 2017-06-20T19:35:00.000Z 
[INFO ] 2017-06-20 09:44:16.949 [PlayerHandler-Thread] line 57 - Add: 2017-06-20T19:45:00.000Z - 2017-06-20T19:50:00.000Z 
[INFO ] 2017-06-20 09:44:16.949 [PlayerHandler-Thread] line 57 - Add: 2017-06-20T20:00:00.000Z - 2017-06-20T20:05:00.000Z 
[INFO ] 2017-06-20 09:44:16.949 [PlayerHandler-Thread] line 57 - Add: 2017-06-20T20:15:00.000Z - 2017-06-20T20:20:00.000Z 
[INFO ] 2017-06-20 09:44:16.949 [PlayerHandler-Thread] line 57 - Add: 2017-06-20T20:30:00.000Z - 2017-06-20T20:35:00.000Z 
[INFO ] 2017-06-20 09:44:16.949 [PlayerHandler-Thread] line 57 - Add: 2017-06-20T20:45:00.000Z - 2017-06-20T20:50:00.000Z 
[INFO ] 2017-06-20 09:44:16.949 [PlayerHandler-Thread] line 57 - Add: 2017-06-20T21:00:00.000Z - 2017-06-20T21:05:00.000Z 
[INFO ] 2017-06-20 09:44:16.949 [PlayerHandler-Thread] line 57 - Add: 2017-06-20T21:15:00.000Z - 2017-06-20T21:20:00.000Z 
[INFO ] 2017-06-20 09:44:16.950 [PlayerHandler-Thread] line 57 - Add: 2017-06-20T21:30:00.000Z - 2017-06-20T21:35:00.000Z 
[INFO ] 2017-06-20 09:44:16.950 [PlayerHandler-Thread] line 57 - Add: 2017-06-20T21:45:00.000Z - 2017-06-20T21:50:00.000Z 
[INFO ] 2017-06-20 09:44:16.950 [PlayerHandler-Thread] line 57 - Add: 2017-06-20T22:00:00.000Z - 2017-06-20T22:05:00.000Z 
[INFO ] 2017-06-20 09:44:16.950 [PlayerHandler-Thread] line 57 - Add: 2017-06-20T22:15:00.000Z - 2017-06-20T22:20:00.000Z 
[INFO ] 2017-06-20 09:44:16.950 [PlayerHandler-Thread] line 57 - Add: 2017-06-20T22:30:00.000Z - 2017-06-20T22:35:00.000Z 
[INFO ] 2017-06-20 09:44:16.950 [PlayerHandler-Thread] line 57 - Add: 2017-06-20T22:45:00.000Z - 2017-06-20T22:50:00.000Z 
[INFO ] 2017-06-20 09:44:16.950 [PlayerHandler-Thread] line 57 - Add: 2017-06-20T23:00:00.000Z - 2017-06-20T23:05:00.000Z 
[INFO ] 2017-06-20 09:44:16.950 [PlayerHandler-Thread] line 57 - Add: 2017-06-20T23:15:00.000Z - 2017-06-20T23:20:00.000Z 
[INFO ] 2017-06-20 09:44:16.951 [PlayerHandler-Thread] line 57 - Add: 2017-06-20T23:30:00.000Z - 2017-06-20T23:35:00.000Z 
[INFO ] 2017-06-20 09:44:16.951 [PlayerHandler-Thread] line 57 - Add: 2017-06-20T23:45:00.000Z - 2017-06-20T23:50:00.000Z 
+0

Ce n'est pas un apprenez-moi, dans quels cas votre code échoue quand il ne devrait pas? –

Répondre

1

Essayez ceci:

Main.log.info("Now: " + DateTime.now()); 
    for(ChannelProgramBase base : programs) { 

     if((base.getTimeStart().isBeforeNow() && base.getTimeEnd().isAfterNow()) || (base.getTimeStart().isAfterNow() && base.getTimeEnd().isAfterNow())) { 


      Main.log.info("Add: " + base.getTimeStart() + " - " + base.getTimeEnd()); 
      programsToPlay.add(base); 
     } 
    } 
+0

bien, vraiment gêné maintenant, d'oublier les supports dans un état combiné :) mais il y a une sortie similaire maintenant: https://pastebin.com/ZmM8pGck Si je soustrais le +02: 00 qui se produit à la fin de mon "now-string" la sortie serait correcte. Des suppositions? – Andre