Blog Post

Azure Data Factory Blog
3 MIN READ

Time Zone and Daylight Saving Support for Schedule Trigger

ChenyeCharlieZhu's avatar
ChenyeCharlieZhu
Iron Contributor
Oct 30, 2020

[Following material applies to Schedule Triggers in Azure Data Factory. Learn more about Schedule Trigger]

 

We are really excited to release Time Support for Schedule Trigger in Azure Data Factory. Going forward, you can create schedule triggers in your local time zone, without the need to convert timestamps to Coordinated Universal Time (UTC) first. Furthermore, in this release, we are also adding support for Daylight Saving auto-adjustment: for time zones that observe Daylight Saving, auto change schedule trigger time twice a year (e.g. 8AM daily trigger will fire at 8AM, whether it's PST or PDT)

 

Note: the changes only apply to new triggers created with time zone other than UTC. Existing ones will continue to follow UTC world clock.

 

To create a Schedule Trigger in local time zone in UX portal

  1. Create new trigger and select Schedule for type
  2. Specify the start date in the desired time zone (e.g. 9AM 2020-10-30 Pacific Time, choose 9:00 AM 2020-10-30). The default value is current time in UTC timestamp
  3. Specify the desired time zone. 
    • Despite we are showing UTC offset in Standard time, e.g. Pacific Time (US & Canada) shows UTC-8, it adjusts to Summer time as expected
    • Time Zone option applies to StartTime, EndTime, and ScheduleExecutionTime
    • Changing time zone will not update StartTimeEndTimeand ScheduleExecutionTime settings. Please make sure that these values are specified correctly in your desired time zone
  4. Click OK and publish your triggers

Schedule Trigger in Time Zone other than UTC

 

 

To create a Schedule Trigger in local time zone with JSON schema

  • timeZone property now takes values other than "UTC"
  • When timeZone is set to "UTC", timestamps are expected in format 'yyyy-MM-ddTHH:mm:ssZ'
  • When timeZone is set to values other than "UTC", timestamps are expected in format 'yyyy-MM-ddTHH:mm:ss', without the suffix Z
  • Per ISO 8601 standard, Z suffix to timestamp mark the datetime to UTC and will render timeZone setting useless
  • Meanwhile missing Z suffix for UTC time zone will cause an error upon trigger activation

For example, a trigger created in UTC time zone would look like this

 

 

 

{
    "properties": {
        "name": "MyTrigger",
        "type": "ScheduleTrigger",
        "typeProperties": {
            "recurrence": {
                "frequency": "Minute",
                "interval": 15,
                "startTime": "2017-12-08T00:00:00Z",
                "endTime": "2017-12-08T01:00:00Z",
                "timeZone": "UTC"
            }
        },
        "pipelines": [{
                "pipelineReference": {
                    "type": "PipelineReference",
                    "referenceName": "Adfv2QuickStartPipeline"
                },
                "parameters": {
                    "inputPath": "adftutorial/input",
                    "outputPath": "adftutorial/output"
                }
            }
        ]
    }
}

 

 

 

 

Some of the time zones we support include:

Time Zone UTC Offset (Non-Daylight Saving) timeZone Value Observe Daylight Saving Time Stamp Format
Coordinated Universal Time 0 UTC No 'yyyy-MM-ddTHH:mm:ssZ'
Pacific Time (PT) -8 Pacific Standard Time Yes 'yyyy-MM-ddTHH:mm:ss'
Central Time (CT) -6 Central Standard Time Yes 'yyyy-MM-ddTHH:mm:ss'
Eastern Time (ET) -5 Eastern Standard Time Yes 'yyyy-MM-ddTHH:mm:ss'
Greenwich Mean Time (GMT) 0 GMT Standard Time Yes 'yyyy-MM-ddTHH:mm:ss'
Central European Standard Time +1 W. Europe Standard Time Yes 'yyyy-MM-ddTHH:mm:ss'
India Standard Time (IST) +5:30 India Standard Time No 'yyyy-MM-ddTHH:mm:ss'
China Standard Time +8 China Standard Time No 'yyyy-MM-ddTHH:mm:ss'

 

Fine prints on Monitoring if you programmatically monitor your Schedule Trigger runs: as per usual, trigger time of a schedule trigger run is specified as a UTC timestamp in return value. Please convert to local time zone on client side.

Updated Nov 02, 2020
Version 3.0

5 Comments

  • RichardPolhill's avatar
    RichardPolhill
    Copper Contributor

    Why did they choose the utterly misleading "GMT Standard Time" for UK time? True GMT is, for all intents and purposes, identical to UTC with no DST. 

  • strangenyo's avatar
    strangenyo
    Copper Contributor

    If you set the trigger to every ‘Sunday’ with the time set to 02:00 and time zone as CET/CEST, will the pipeline be triggered twice on last Sunday of October and never triggered on last Sunday of March? Thanks.

  • If you want it to respect day light savings time and fire at the same time daily you will need to set the Trigger recurrence as every ‘Day’ with the hours set to [ 1, 9, 17 ] and Minute as [ 0 ]. With this, the trigger will attempt to fire at the same hours every day (1am, 9am, 5pm) and it will take into account Daylight savings adjustment.

  • Alisoleyman's avatar
    Alisoleyman
    Copper Contributor

    Is time zone and daylight also supported for Tumbling Window Triggers? Or do you know when Microsoft releases it for Tumbling Window Triggers?

    Thanks,

  • Johannes_Vink's avatar
    Johannes_Vink
    Brass Contributor

    "Central European Standard Time" should be "Central European Time" as CEST is the summer time equivalent.

     

    If I understand it correctly, currently in the Netherlands we are running on CET. So 22:00 CET = 21:00 UTC. Then when we switch in the summer to CEST, how is the 22:00 CET displayed? Still as 22:00? And how is it executed against UTC? As 20:00 UTC?

     

    I hate summer time, timezones and AM/PM notation... complex stuff.