DateTime et la Date de Comparaison
Pourquoi cette instruction return true? Je comprends que je suis en comparant un Date
à un DateTime
variable, mais je suis à la recherche d'une explication plus technique.
DateTime dt = DateTime.newInstance(2012,04,30,0,0,0);
system.debug(dt > Date.valueOf('2012-04-30'));
Aussi, serait-valeurs DateTime (pour la variable dt) avant 2012-04-30 également renvoyer vrai?
- Je pense que c'est probablement TZ liées, ne pensez pas uniquement la Date val a tout TZ info.
- Bien pensé, mais un DateTime de
DateTime.newInstance(2012,04,30,12,0,0);
renvoie également vrai, et 12 midi plus que compense les différences de Fuseau horaire. - mais ce serait toujours être supérieure à la date. (J'imagine que la date est vraiment la date + de minuit pour la comparaison)
- Ce qui est logique, je n'ai pas de compte pour la date date de+de minuit. Merci!
Vous devez vous connecter pour publier un commentaire.
Superfell
vu dans les commentaires que cela est probablement dû à un temps de la zone de conversion ainsi que minuit (00:00:00
) étant annexée à la Date de la comparaison. Histoire courte: il avait raison d'être en raison de minuit étant annexée à la Date de la comparaison. Le détail est ci-dessous.J'avais besoin de le voir en action pour le comprendre complètement; alors, j'ai écrit un bloc de code.
L'résultant du journal de débogage affiche:
La simplist solution serait à comparer à
Date.valueOf('2012-05-01');
. Toutefois, il est possible de comparer CreatedDate champs à l'aide de lanewInstanceGMT
méthode sur le type DateTime. À l'aide de la méthode DateTime, minuit doit être pris en compte.OU
Les deux méthodes ont entraîné les résultats souhaités: