salesforce中的字符串到日期时间转换

Raj*_*Raj 1 salesforce apex-code

下面的行给出了salesforce中的'FIELD_INTEGRITY_EXCEPTION'.请为我提供替代方案.

imr.Assigned_DTM__c = DateTime.valueOfGmt(('06/08/2013 06:30:22').replaceAll('/',' - '));

Pav*_*kou 5

问题是您使用的格式不正确

System.debug(DateTime.valueOfGmt(('06/08/2013 06:30:22').replaceAll('/','-')));

System.debug(DateTime.valueOfGmt(('2013/08/06 06:30:22').replaceAll('/','-')));
Run Code Online (Sandbox Code Playgroud)

控制台输出:

08:19:40:061 USER_DEBUG [3]|DEBUG|0012-02-03 06:30:22
08:19:40:061 USER_DEBUG [5]|DEBUG|2013-08-06 06:30:22
Run Code Online (Sandbox Code Playgroud)

从调试中可以看出,第一个变量返回不正确的日期时间值.

官方文件说明如下

valueOfGmt返回包含指定String的值的Datetime.String应在GMT时区使用标准日期格式"yyyy-MM-dd HH:mm:ss"

用datetime更正你的初始字符串.

UPDATE

String myDate = '06/08/2013 06:30:22';
String stringDate = myDate.substring(6,10) + '-' + 
                    myDate.substring(3,5) + '-' +
                    myDate.substring(0,2) + ' ' +
                    myDate.substring(11,19);
DateTime dt = datetime.valueOf(stringDate);
System.debug(String.valueOfGmt(dt));
Run Code Online (Sandbox Code Playgroud)

日志: dt|"2013-08-06T03:30:22.000Z"