gpt4 book ai didi

salesforce - 预定作业使用哪个时区作为首选开始时间

转载 作者:行者123 更新时间:2023-12-03 23:48:40 25 4
gpt4 key购买 nike

我们有一个计划作业,该作业在每个月的 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
}

关于salesforce - 预定作业使用哪个时区作为首选开始时间,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9708197/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com