SCPI – Get current time in different Timezone

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: , , , , , ,

Leave a comment