Use the formatDateTime() function to get your offset. Add 'Z' in the string parameter as in the example in the docs.
https://docs.mendix.com/refguide/parse-and-format-date-function-calls
Just a few screenshots to clarify
Project settings including “Scheduled event time zone”
Scheduled Event setting
Microflow called by scheduled event uses this java action:
My UTC check Microflow where ALLL these variable return time based on UTC
First variable is the %CurrenDateTime% built in variable. Second is [%BeginOfCurrentHour%] and third is [%BeginOfCurrentHourUTC%] . They all return times that are in UTC (first one is exact UC time, second two return the beginning of the current UTC hour)
I’m not sure if it’s quite what you are after, but you could create a Java Action to see if the time in a DateTime variable is in daylight savings for a timezone or not.
Assuming you have a string called TimeZone with the timezone in (e.g. Europe/London), and the date in a DateTime called Date, you can use the following line of Java to return a boolean that is true or false, depending on if it’s daylight saving or not.
// BEGIN USER CODE
return java.time.ZoneId.of(this.Timezone).getRules().isDaylightSavings(this.Date.toInstant());
// END USER CODE
You can get the time zone name from the TimeZone system entity attribute Code if you needed it programatically.
Hope this helps.