我正在对Salesforce对象执行创建。创建成功,但datetime字段从不存储我传递的时间。它始终存储时间:00:00:00.000。
例如: 2016-03-20T00:00:00.000 + 0000
我正在使用以下内容创建发送给Salesforce的日期对象:
#[groovy: Date.parse('yyyy-MM-dd HH:mm:ss',(String)payload.'Login_Date_Time__c')]
payload.'Login_Date_Time__c'是一个数据库日期时间列,因此格式为2016-03-20 00:56:50
如果我记录上述内容,输出肯定会显示时间:
Sun Mar 20 00:56:50 MST 2016
任何帮助都将不胜感激!
答案 0 :(得分:0)
我通过执行以下操作解决了这个问题:
对于我从数据库获得的日期时间值的任何日期,我将其转换为日历对象。只要在传递给salesforce时它在日历对象中,它就会被接受。
我编写了以下方法并将其添加到java bean中。然后我传入sql datetime值的字符串值。
我使用它的一种方式示例:
#[app.registry['StringHelper'].dateTimeStrToCalendarObj((String)payload[0].'MaxLastModifiedDate')]
方法:
public static Calendar dateTimeStrToCalendarObj(String dateTimeString)
{
DateFormat formatter = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
Date date;
try
{
date = formatter.parse(dateTimeString);
Calendar calendar = Calendar.getInstance();
calendar.setTime(date);
return calendar;
}
catch (ParseException e)
{
e.printStackTrace();
}
return Calendar.getInstance();
}