Date.today()は、クラスごとに異なる日付を指定します

Aug 21 2020

これらは私が書いた2つのクラスです:

aura:コンポーネントコントローラークラス

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

RestResourceクラス

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

1つ目はaura:componentコントローラークラスで、2つ目はRest Resourceクラスです。私はdateObj.date()両方のクラスから電話をかけています。問題は、最初にdateObj.date()戻っ2020-08-20及び第二戻り2020-08-21、第二のクラスは、最初のクラス分後に実行された場合でも。それで、なぜこれがこのように起こっているのですか?

両方のクラスで同じ日付が必要な場合はどうすればよいですか?ちなみに、現在の日付は2020-08-21です。

回答

3 OleksandrBerehovskyi Aug 21 2020 at 15:43

これらの2つのコードは、2人の異なるユーザーによって実行されており、それらのユーザーのタイムゾーンは異なる設定であると想定できます。Date.today()メソッドのドキュメントによると:

現在のユーザーのタイムゾーンで現在の日付を返します。


GMTの今日の値を取得する場合は、Datetimeクラスを使用します

Datetime.now().dateGMT();