web
You’re offline. This is a read only version of the page.
close
Skip to main content

Announcements

News and Announcements icon
Community site session details

Community site session details

Session Id :
Power Platform Community / Forums / Power Automate / CreatedOn time differe...
Power Automate
Suggested Answer

CreatedOn time difference in a canvas app gallery and Get Row by Id Action Output for the same row

(1) ShareShare
ReportReport
Posted on by 672
 
 
In a canvas app the displayed createdOn datetime for a dataverse record is accurate as this handles the UTC to timezone conversion. 
 
In a Get Row by Id Action output , I am seeing createdOn times an hour behind, even in the same environment.
 
{
  "@odata.etag": "W/\"1234567\"",
  "contactid": "11111111-2222-3333-4444-555555555555",
  "fullname": "Joanne Smith",
  "createdon": "2026-09-13T10:15:00Z"
}
 
 
So firstly, is this a personal or tenant setting related to the account underpinning the account reference used in the Get Row by Id Action output action?
 
If I have to handle the timezone conversion say in a Compose Action ( see below) , how will this handle users in different timezones?  Will this mean buildingbuilding a table of time zones and having locate each user's , then updating the function below.  
 
 
formatDateTime(
    convertTimeZone(
        outputs('Get_a_row_by_ID')?['body/createdon'],
        'UTC',
        'GMT Standard Time'
    ),
    'dd/MM/yyyy HH:mm'
)
 
 
 
 
  • Suggested answer
    trice602 Profile Picture
    16,675 Super User 2026 Season 2 on at
    Hi there!
     
    The time is one hour behind because the get a row action returns the raw UTC and doesn't localize automatically.  This is generally not a personal or tenant setting.
     
    If most users are in the same time zone this works as is:
     
     
    formatDateTime(
        convertTimeZone(
            outputs('Get_a_row_by_ID')?['body/createdon'],
            'UTC',
            'GMT Standard Time'
        ),
        'dd/MM/yyyy HH:mm'
    )
     
    If you need to reflect different time zone settings for individual users, you can get those details already stored in Dataverse table 'Model-Driven App User Setting'.
     
     

    ------------------------------------------------        

    💡 If this was helpful, please like and check the box below "Does this answer your question" to help others find this too!          

    Always glad to help! 💯💯💯💯💯         

    Tom   ~  LinkedIn - tomrice.ai

    MICROSOFT CERTIFIED     
      
    AI & Copilot: AB-100 | AB-730 | AB-731 | AI-900
    Power Platform: PL-600 | PL-500 | PL-400 | PL-200 | PL-100 | PL-900
    Fabric, Power BI & Data: DP-700 | DP-600 | PL-300 | DP-900 | MCSA | 70-778 | 70-779
    Dynamics 365: MB-210 | MB-240 | MB-910 | MB-920
    Security: SC-900
    Azure: AZ-900
    Microsoft 365: MS-900
    Excel: 77-728 | 77-888
    Applied Skills: 19
     
     
  • Suggested answer
    11manish Profile Picture
    4,819 Super User 2026 Season 2 on at
    This is a timezone presentation difference, not a data discrepancy.
     
    The best enterprise design is UTC internally and user-local time at the UI layer.

    Do not treat the one-hour difference as a Dataverse or connection-account problem.
     
    The Get a Row by ID output is returning the UTC representation of the Dataverse User Local createdon value,
     
    while Canvas App is applying local-time presentation.
  • Suggested answer
    M Bilal Khan Profile Picture
    384 on at
    Hello @westerdaled,
     

    The difference is expected because the Canvas App and Power Automate don't necessarily present the Dataverse CreatedOn value in the same way.

    Dataverse stores the CreatedOn value in UTC. The Canvas App can apply the user's configured timezone when displaying the value, whereas the Get a row by ID action generally returns the Dataverse value in UTC, which is why you are seeing the Z at the end of the timestamp.

    I wouldn't recommend hard-coding 'GMT Standard Time' if the flow is going to be used by people in different time zones. That would make the result correct only for that particular timezone.

    Instead, if the requirement is to show the date/time according to the current user, you need to determine the user's timezone and then use that timezone in convertTimeZone(). You don't necessarily need to maintain your own timezone table; Power Automate uses Windows time zone IDs, which already account for daylight-saving changes.

    For example, the general pattern would be:

    formatDateTime(
        convertTimeZone(
            outputs('Get_a_row_by_ID')?['body/createdon'],
            'UTC',
            <user's Windows time zone ID>
        ),
        'dd/MM/yyyy HH:mm'
    )
    

    The important part is how the flow identifies the user. If this is a user-facing flow triggered from a Canvas App, I'd consider passing the user's timezone (or timezone ID) from the app to the flow rather than relying on the connection/account running the Dataverse action.

    That way the same flow can return the correct local time for each user instead of having a fixed timezone embedded in the flow.

    Also, the one-hour difference you're seeing is a good indication that daylight-saving/timezone conversion is involved rather than the Dataverse record itself having a different CreatedOn value. The Z value in your JSON is UTC.

Under review

Thank you for your reply! To ensure a great experience for everyone, your content is awaiting approval by our Community Managers. Please check back later.

Helpful resources

Quick Links

Season of Sharing Community Challenge Winners!

Congratulations to our community stars!

Kudos to our 2025 Community Spotlight Honorees

Expanding mentorship, skilling, and AI innovation

Leaderboard > Power Automate

#1
11manish Profile Picture

11manish 249 Super User 2026 Season 2

#2
Mohsin Ali Profile Picture

Mohsin Ali 198

#3
David_MA Profile Picture

David_MA 197 Super User 2026 Season 2

Last 30 days Overall leaderboard