Date.today() donne des dates différentes sur différentes classes

Aug 21 2020

Ce sont les deux classes que j'ai écrites:

aura:classe de contrôleur de composant

public class ResourcesComponentClass {
    @AuraEnabled
    public static void getDate(){
        Datetime dateObj = Date.today();
        System.debug(dateObj.date());
    }
}

Classe de ressources de repos

@RestResource(urlMapping='/AllHistory/*')
global class ExternalAllResourcesApi {
    @HttpPut
    global static String updateDateAndTime() {
        Datetime dateObj = Date.today();
        System.debug(dateObj.date());
    }
}

Le premier est aura:componentla classe du contrôleur et le second est une Rest Resourceclasse. J'appelle dateObj.date()des deux classes. Le problème est que le premier dateObj.date()revient 2020-08-20et que le second revient 2020-08-21, même si la deuxième classe est exécutée quelques minutes après la première classe. Alors, pourquoi ça se passe comme ça ?

Que dois-je faire si je veux les mêmes dates dans les deux cours ? Au fait, la date actuelle est 2020-08-21.

Réponses

3 OleksandrBerehovskyi Aug 21 2020 at 15:43

Je peux faire l'hypothèse que ces deux morceaux de code sont exécutés par deux utilisateurs différents, et que ces utilisateurs ont des paramètres de fuseau horaire différents. Selon la documentation de la méthode Date.today() :

Renvoie la date actuelle dans le fuseau horaire de l'utilisateur actuel .


si vous voulez obtenir la valeur actuelle de GMT, utilisez Datetimela classe

Datetime.now().dateGMT();