# Power Automate date shows wrong day or time

> For the full documentation index, see https://250highstreet.com/llms.txt

> Format a Power Automate date as MM/dd/yyyy with formatDateTime, and fix the wrong day or hour by converting from UTC first. Copy-ready expressions.

Short answer: use formatDateTime with the format string MM/dd/yyyy to get a date such as 06/15/2009. If the day or hour is off, the value is in UTC. Microsoft says: "Power Automate uses Coordinated Universal Time (UTC) by default." Convert it first with convertTimeZone, then format it.

## Two jobs, two functions

These two problems look alike but have different fixes.

- The date looks ugly, such as 2026-11-05T14:30:00Z. That is a formatting problem. Use formatDateTime.
- The date is right but the day or hour is wrong for your office. That is a time zone problem. Use convertTimeZone or convertFromUtc, then format.

## Format a date with formatDateTime

Microsoft's page "Customize or format date and time values in a flow" says formatDateTime takes two parameters: a timestamp and a format string. A timestamp that you type in is "expected to follow the ISO 8601 format ("yyyy-MM-ddTHH:mm:ssZ")."

Microsoft's own example for the MM/dd/yyyy format, with dynamic content from a trigger:\
formatDateTime(triggerBody()?\['date'\], 'MM/dd/yyyy')\
After the run, Microsoft says the email "shows the date in the specified MM/dd/yyyy format."

Add it to an action:

1.  Go to [https://make.powerautomate.com](https://make.powerautomate.com) and open your flow. Exact names may differ on your screen.
2.  Select the field where the date should go, such as the Body of a Send an email (V2) action.
3.  Select Add dynamic content, then open the Expression tab.
4.  Type formatDateTime( and add the value to format. Microsoft says dynamic content "shouldn't be surrounded by single quotes."
5.  Add a comma, then the format string in single quotes, such as 'MM/dd/yyyy', and close the bracket.
6.  Select OK.

## Format strings Microsoft shows

These come from the same Microsoft page. Each uses the timestamp 2009-06-15T13:45:30.

- 'g' returns 6/15/2009 1:45 PM.
- 'D' returns Monday, June 15, 2009.
- 'M/dd/yyyy h:mm tt' returns 6/15/2009 1:45 PM.
- 'yyyy/MM/dd hh:mm:ss tt' returns 2009/06/15 1:45:30 PM.
- formatDateTime(utcNow(), 'dd-MM-yyyy') returns the current date as 15-06-2009 in Microsoft's example.
- formatDateTime(utcNow(), 'MMMM dd, yyyy, HH:mm') returns June 15, 2009, 16:50 in Microsoft's example.

Microsoft says a single character such as d, g or G is a "standard format string." A string with more than one character, such as M/dd/yyyy h:mm tt, is a "custom format string." Its page links to the .NET lists of both kinds for the full set of letters.

Case matters in custom strings. In Microsoft's examples, MM is the month and mm is minutes, HH is a 24 hour clock and hh is a 12 hour clock. Our advice, not a Microsoft rule: check one real date in a test run before you use a new pattern in an email that goes to customers.

## Fix the wrong day or hour

Microsoft's time zone page says: "Datetimes might have different formats. If your datetime has a Z at the end, it means it's in UTC time." Its example is 2020-04-10T01:28:14.0406387Z. A value with that Z is UTC time, not your office time.

Our advice, not a Microsoft rule: this explains the symptom where a date looks one day ahead when a flow runs in the evening in the US. The clock in UTC has already moved to the next day. Format the converted value, not the raw one.

Microsoft's example for Eastern time:\
formatDateTime(convertTimeZone(utcNow(), 'UTC', 'Eastern Standard Time'), 'yyyy-MM-dd HH:mm:ss')\
Microsoft describes it as returning "the date time adjusted for Eastern Standard time."

With dynamic content, Microsoft's second example is:\
convertTimeZone(triggerBody()?\['Date'\],'UTC','Eastern Standard Time','HH:mm')

For a SharePoint date column, swap in the dynamic content for your column in place of triggerBody()?\['Date'\]. For MM/dd/yyyy, put 'MM/dd/yyyy' in place of 'HH:mm' as the last value. Microsoft's function reference says that last value can be a custom format pattern. Our advice, not a Microsoft rule: test with a row whose date you know.

## convertTimeZone and convertFromUtc

Microsoft's function reference gives both:\
convertTimeZone('\<timestamp\>', '\<sourceTimeZone\>', '\<destinationTimeZone\>', '\<format\>'?)\
convertFromUtc('\<timestamp\>', '\<destinationTimeZone\>', '\<format\>'?)\
convertFromUtc has no source time zone, because the source is always UTC. The format is optional in both. Microsoft's reference says the default is "o", which is yyyy-MM-ddTHH:mm:ss.fffffffK.

Microsoft's convertFromUtc example: convertFromUtc('2018-01-01T08:00:00.0000000Z', 'Pacific Standard Time', 'D') returns "Monday, January 1, 2018".

Time zone names come from the Microsoft Windows Default Time Zones list. For convertTimeZone, the reference says you "might have to remove any punctuation from the time zone name."

## The Convert time zone action

Microsoft's page also names a built-in action called Convert time zone. Its inputs are:

1.  Base time: the datetime you want to convert.
2.  Source time zone: the zone it is in now.
3.  Destination time zone: the zone you want.
4.  Format string (optional).

Use the action if you want to see the result as a field on the card. Use the expression if you want one line inside another action.

## Errors and limits

- Microsoft's page notes an error that says "The date time string must match ISO8601 format." It means the text you passed is not a valid datetime. Check the value in the run history.
- Microsoft says some connectors "have limitations in how the time zone displays." Check the connector page if a value still looks off after you convert it.
- To convert to or from UTC, Microsoft's page points to convertFromUtc and convertToUtc.

For a date plus a number of days, see "[Add business days to a date in Power Automate](/guides/power-automate-add-business-days-to-date/)". For a SharePoint column that shows today, see "[SharePoint calculated column and today's date](/guides/sharepoint-calculated-column-today/)". For a schedule that runs at a set hour, see "[Power Automate scheduled flow not running](/guides/power-automate-scheduled-flow-not-running/)".

## When to get help

You can build all of this yourself in Microsoft 365. If you would rather have it built and tested for your team, I do that. A tracker like this is a fixed price: \$5,000 for one, built in 2 weeks. See "[What a SharePoint tracker costs to build](/guides/what-a-sharepoint-tracker-costs/)". Bring one example of the problem to a free call.

I am Al Davies. I run 250 High Street LLC and build SharePoint trackers and Power Automate flows for operations teams. I work remotely. The first call is free, and I will not try to sell you anything.

See trackers I built: [Tools I built](/portfolio/)

## FAQ

### How do I format a date as MM/dd/yyyy in Power Automate?

Use formatDateTime with the format string 'MM/dd/yyyy', as in formatDateTime(triggerBody()?\['date'\], 'MM/dd/yyyy').

### Why is my Power Automate date one day off?

Microsoft says Power Automate uses UTC by default. Convert the value to your time zone with convertTimeZone before you format it.

### What is the difference between MM and mm in formatDateTime?

In Microsoft's examples, MM is the month and mm is the minutes. HH is a 24 hour clock and hh is a 12 hour clock.

### How do I show Eastern time in a flow?

Microsoft's example is formatDateTime(convertTimeZone(utcNow(), 'UTC', 'Eastern Standard Time'), 'yyyy-MM-dd HH:mm:ss').

### What does the Z at the end of a date mean?

Microsoft says a Z at the end means the datetime is in UTC.

## Sources

- [Microsoft Learn, Customize or format date and time values in a flow - Power Automate](https://learn.microsoft.com/power-automate/date-time-values)
- [Microsoft Learn, Convert a time zone - Power Automate](https://learn.microsoft.com/en-us/power-automate/convert-time-zone)
- [Microsoft Learn, Reference for functions in workflow expressions - Azure Logic Apps](https://learn.microsoft.com/en-us/azure/logic-apps/workflow-definition-language-functions-reference)

## Related guides

- [Set a closing date on Microsoft Forms](/guides/microsoft-forms-set-end-date/)
- [Scheduled flow did not run at the set time](/guides/power-automate-scheduled-flow-not-running/)
- [Run a scheduled flow on weekdays only](/guides/power-automate-recurrence-weekdays-only/)

Source: https://250highstreet.com/guides/power-automate-formatdatetime-mm-dd-yyyy-time-zone/
