2016-03-21 5 views
0

Ich führe eine Erstellung für ein Salesforce-Objekt durch. Die Erstellung ist erfolgreich, aber das Datetime-Feld speichert niemals die Zeit, die ich übergebe. Es speichert immer mit der Zeit: 00: 00: 00.000.salesforce-Konnektor Methode erstellen - datetime Datumswert korrekt, aber die Zeit ist immer 00: 00: 00.000?

Zum Beispiel: 2016-03-20T00: 00: 00,000 + 0000

Ich verwende die nach dem Zeitpunkt Objekt zu erstellen, die Salesforce senden wird:

#[groovy: Date.parse('yyyy-MM-dd HH:mm:ss',(String)payload.'Login_Date_Time__c')] 

Nutzlast. ‚Login_Date_Time__c‘ ist eine Datenbank Datetime-Spalte, so ist es formatiert, wie 2016-03-20 00:56:50

Wenn ich die oben einzuloggen, zeigt die Ausgabe auf jeden Fall die Zeit:

So Mar 20 00:56:50 MST 2016

Jede Hilfe hier würde geschätzt werden!

+0

sind Sie in der Lage, diese zu lösen? –

+0

@RalphRimorin Ich habe meine Lösung zur Verfügung gestellt, die ich schließlich unten kam. – kambythet

Antwort

0

ich dieses Problem gelöst, indem Sie folgendermaßen vorgehen:

Für jedes Datum, das ich aus der Datenbank, die ein Datetime-Wert ist, ich wandeln es in ein Kalenderobjekt. Solange es in einem Kalenderobjekt an salesforce übergeben wird, wird es akzeptiert.

Ich schrieb die folgende Methode und fügte sie zu einer Java-Bean hinzu. Ich übergebe dann den String-Wert des SQL-Datetime-Wertes.

Beispiel für eine Art und Weise ich es:

#[app.registry['StringHelper'].dateTimeStrToCalendarObj((String)payload[0].'MaxLastModifiedDate')] 

Die Methode:

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(); 
} 
Verwandte Themen