salesforce SOQL可以';无法在本地时间中获取日期时间

salesforce SOQL可以';无法在本地时间中获取日期时间,salesforce,apex,soql,Salesforce,Apex,Soql,我的目标是基于本地时间的简单日期范围查询来统计潜在客户记录 Integer TotalLeads = [ Select Count() From Lead where createddate >= fromdate CreatedDate <= todate]; // Date date ds = date.valueof('2017-03-23'); string dm = string.valueOf( ds.month())

我的目标是基于本地时间的简单日期范围查询来统计潜在客户记录

Integer TotalLeads = [ Select Count() From Lead where createddate >= fromdate  CreatedDate <= todate];
        // Date 
        date ds = date.valueof('2017-03-23');
        string dm = string.valueOf( ds.month());
        string dd = string.valueOf(ds.day());
        string dy = string.valueOf(ds.year());

        // DateTime Midnight (UTC)
        String SDate = string.valueof(dm +'/' + dd + '/' + dy + ' 12:00 AM');
        system.debug(SDate); // -> 3/23/2017 12:00 AM

        // DateTime (Local Time)
        datetime ds2 = datetime.parse(SDate );
        system.debug(ds2); // -> 2017-03-23 07:00:00

        system.debug(ds2.format('yyyy-MM-dd\'T\'hh:mm:ss'')); // -> 2017-03-23T12:00:00
如您所见,使用ds2.format将其设置为我需要的格式,但返回UTC(午夜),我需要它为2017-03-23T07:00:00

有什么建议吗


谢谢

知道我做错了什么。日期计算很好,这与如何将其传递给批处理作业有关。

知道我做错了什么。日期计算很好,它与如何将其传递给批处理作业有关。
        // Date 
        date ds = date.valueof('2017-03-23');
        string dm = string.valueOf( ds.month());
        string dd = string.valueOf(ds.day());
        string dy = string.valueOf(ds.year());

        // DateTime Midnight (UTC)
        String SDate = string.valueof(dm +'/' + dd + '/' + dy + ' 12:00 AM');
        system.debug(SDate); // -> 3/23/2017 12:00 AM

        // DateTime (Local Time)
        datetime ds2 = datetime.parse(SDate );
        system.debug(ds2); // -> 2017-03-23 07:00:00

        system.debug(ds2.format('yyyy-MM-dd\'T\'hh:mm:ss'')); // -> 2017-03-23T12:00:00