Запланированные задания выполняются как «системные», но я думаю, что пользовательский контекст все еще существует, что означает, что Date.today()
или System.today()
будет в CDT.
Обновление:
Только что протестировал и DateTime.now()
возвращает значения по Гринвичу.
Еще одно обновление:
Документы говорят, Date.today()
возвращает дату в часовом поясе текущего пользователя. Основываясь на приведенном ниже тесте, система знает, кто пользователь, и знает часовой пояс пользователя, поэтому Date.today()
будет текущей датой в часовом поясе пользователя. Я подтвердил это, установив часовой пояс на +10, и система вернула дату 2012-03-15.
// Brisbane +10 time zone
global void execute(SchedulableContext SC) {
System.debug(DateTime.now()); // 2012-03-14 19:24:39
System.debug(DateTime.now().formatLong()); // 3/15/2012 5:24:39 AM AEST
System.debug(Date.today()); // 2012-03-15 00:00:00
System.debug(UserInfo.getUserName()); // dev1@jeremyross.org
}