The current datetime can be easily retrieved and assigned to a property or header with the Content Modifier Step like this. Use a Camel Expression like these :
${date:now:yyyy-MM-dd’T’00:00:00’Z’}
or
${date:now:yyyy-MM-dd}
based on the date format you need.
But the problem comes when you need the time in different timezone. For eg, I wanted time in CET, but the camel expression always gives the time in UTC zone. This could be tackled with a groovy script to convert the time into any desired timezone.
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.TimeZone;
import com.sap.gateway.ip.core.customdev.util.Message;
import java.util.HashMap;
import java.time.ZonedDateTime
import java.time.ZoneId
import java.time.format.DateTimeFormatter;
def Message processData(Message message) {
ZonedDateTime now = ZonedDateTime.now(ZoneId.of("Europe/Berlin"));
todayTZ = now.format(DateTimeFormatter.ofPattern("yyyy-MM-dd'T'00:00:00'Z'"));
today = now.format(DateTimeFormatter.ofPattern("yyyy-MM-dd"));
println today
println todayTZ
println futureLimitDate
message.setProperty("todayTZ", todayTZ);
message.setProperty("today", today);
return message;
}
That’s it. Println is just for debugging in the IDE console, you can remove it.
Happy Coding. 😉
Tags: groovy, java, java date, sap cloud platform integration, SCPI, successfactors integration, timezone
Leave a comment