Azure Function Set Runtime Time Zone

Jon Farmer | Stiperstone 0 Reputation points
2025-10-03T08:13:22.7433333+00:00

I have noticed that when a Timer trigger is used the function app that I have written seems to use UTC as the time zone used. I tried to set an Environment Variable using WEBSITE_TIME_ZONE set to Europe/London but is still seems to run in UTC?

How can I make it respect the local time zone?

Azure App Configuration
Azure App Configuration
An Azure service that provides hosted, universal storage for Azure app configurations.
{count} votes

3 answers

Sort by: Most helpful
  1. Alex Burlachenko 18,310 Reputation points Volunteer Moderator
    2025-10-03T08:38:43.84+00:00

    Hi Jon,

    you set the WEBSITE_TIME_ZONE but it's still running in utc. this usually means the setting hasn't been applied correctly or the function needs a kick to recognize it.

    double check where you set the WEBSITE_TIME_ZONE variable. it needs to be in the application settings of your function app in the azure portal, not in your local local.settings.json file. make sure you've saved the setting and that the value is exactly Europe/London.

    after you save the setting, you must restart your function app. the time zone setting is read on startup, so a restart is required for it to take effect. go to your function app in the portal and click the 'restart' button.

    if you've done both of those things and it's still not working, check your timer expression. the cron expression itself is always interpreted in the time zone you set. for example, 0 0 9 * * * should now fire at 9 am london time, not utc.

    one more thing to check is the function app's operating system. the WEBSITE_TIME_ZONE setting works on both windows and linux, but the available time zone names can be slightly different. Europe/London is standard, but if you're on a linux plan, you could also try the full path like GB.

    verify the app setting is saved correctly in the azure portal, then restart your function app. that should force it to pick up the new time zone.

    regards,

    Alex

    and "yes" if you would follow me at Q&A - personaly thx.
    P.S. If my answer help to you, please Accept my answer
    

    https://ctrlaltdel.blog/

    0 comments No comments

  2. Jon Farmer | Stiperstone 0 Reputation points
    2025-10-03T08:51:39.5333333+00:00

    User's image

    This is when I have it set.
    Operating System is Windows

    Below is the schedule but it is currently running at 03:30 as the UK is currently using BST.

    "schedule": "0 30 2 * * *",
    
    0 comments No comments

  3. Sandhya Kommineni 1,575 Reputation points Microsoft External Staff Moderator
    2025-10-11T16:49:24.47+00:00

    Hello Jon Farmer | Stiperstone,

    Thanks for posting your question in Microsoft Q&A forum.

    Thanks for sharing details.

    This behavior is expected by default, Azure Functions Timer Triggers Use Coordinated Universal Time (UTC) for scheduling.

    In your case:

    • Your CRON expression "0 30 2 * * *" runs at 02:30 UTC.
    • The UK is currently observing British Summer Time (BST), which is UTC+1.
    • As a result, the function runs at 03:30 BST, Actual Run Time: 02:30 UTC is equivalent to 03:30 BST.

    To configure your Function App to use local UK time (and automatically adjust for Daylight Saving Time & automatic switch between GMT and BST), you need to set an application setting (WEBSITE_TIME_ZONE) in your Function App configuration.

    Since your Operating System is Windows, you need to use the corresponding Windows Time Zone Identifier.

    1. Go to your Azure Function App in the Azure Portal.
    2. Navigate to Configuration (under Settings).
    3. Under the Application settings tab, add a new application setting:
      • Name: WEBSITE_TIME_ZONE
      • Value (for UK on Windows): GMT Standard Time
    4. Click Save. This will restart your Function App for the setting to take effect.
    5. Keep your CRON Expression as in: "schedule": "0 30 2 * * *

    By setting WEBSITE_TIME_ZONE to GMT Standard Time, you instruct the Azure Functions runtime to interpret the CRON expression in that specific time zone, which automatically adjusts between GMT and BST without requiring manual updates.

    1. When in BST (UTC+1): the trigger runs at 02:30 BST (01:30 UTC).
    2. When in GMT (UTC+0): the trigger runs at 02:30 GMT (02:30 UTC).

    This ensures your function consistently runs at 02:30 local UK time throughout the year.

    I hope the provided answer is helpful, do let me know if you have any further questions on this Please accept as Yes & upvote if the answer is helpful so that it can help others in the community.

    0 comments No comments

Your answer

Answers can be marked as 'Accepted' by the question author and 'Recommended' by moderators, which helps users know the answer solved the author's problem.