Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/multithreading/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Salesforce 计划作业使用哪个时区作为首选开始时间_Salesforce_Apex Code - Fatal编程技术网

Salesforce 计划作业使用哪个时区作为首选开始时间

Salesforce 计划作业使用哪个时区作为首选开始时间,salesforce,apex-code,Salesforce,Apex Code,我们有一个计划作业,该作业在每月1日运行,首选开始时间为凌晨1点。使用Salesforce界面(Develop | Apex Classes | Schedule Apex)计划作业。运行时,它会根据系统日期为记录设置月份字段(System.today();)。有时,月份设置错误,我怀疑这是由于日期变量设置为系统日期所致 如果我使用界面将作业设置为凌晨1点运行,以我的用户身份登录(时区设置为CDT),那么System.today()将返回什么值?将返回当前CDT日期还是GMT日期?来自: 计划作

我们有一个计划作业,该作业在每月1日运行,首选开始时间为凌晨1点。使用Salesforce界面(Develop | Apex Classes | Schedule Apex)计划作业。运行时,它会根据系统日期为记录设置月份字段(
System.today();
)。有时,月份设置错误,我怀疑这是由于日期变量设置为系统日期所致

如果我使用界面将作业设置为凌晨1点运行,以我的用户身份登录(时区设置为CDT),那么
System.today()将返回什么值?将返回当前CDT日期还是GMT日期?

来自:

计划作业作为“系统”运行,但我认为仍然存在用户上下文,这意味着
Date.today()
system.today()
将在CDT中

更新:

刚刚测试过,并且
DateTime.now()
返回GMT值

另一更新:

文档显示
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
}

这指的是作业运行的时间,而不是作业中日期/时间值的语义。你是对的。我之前没有想到这个测试,但我尝试将我的用户设置为一个时区,该时区将有明天的日期,并运行
System.today()
在Execute Anonymous中,它确实在返回日期时使用了当前用户的时区。它返回了
2012-03-15 00:00:00
// 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
}