Date.today() fornisce date diverse su classi diverse

Aug 21 2020

Queste sono le due classi che ho scritto:

aura:classe controller del componente

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

Riposo Classe di risorse

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

Il primo è aura:componentla classe controller e il secondo è una Rest Resourceclasse. Chiamo dateObj.date()da entrambe le classi. Il problema è che il primo dateObj.date()ritorna 2020-08-20e il secondo ritorna 2020-08-21, anche se la seconda lezione viene eseguita pochi minuti dopo la prima lezione. Allora, perché sta succedendo così?

Cosa devo fare se voglio le stesse date in entrambe le classi? A proposito, la data corrente è 2020-08-21.

Risposte

3 OleksandrBerehovskyi Aug 21 2020 at 15:43

Posso ipotizzare che quei due pezzi di codice siano eseguiti da due utenti diversi e che quegli utenti abbiano impostazioni di fuso orario diverse. Secondo la documentazione del metodo Date.today() :

Restituisce la data corrente nel fuso orario dell'utente corrente .


se vuoi ottenere il valore GMT di oggi, usa Datetimela classe

Datetime.now().dateGMT();