You are currently viewing How to Format Date in Power Automate?

How to Format Date in Power Automate?

In this post, we will learn how to format date in Power Automate and how to change date format in Power Automate in different date formats like dd/MM/yyyy, MM/dd/yyyy …etc

Date Format in Power Automate

Power Automate is one of the four products of the Microsoft Power Platform which is a cloud-based automation platform that allows users to build automated processes across different apps and services in no-code/low-code.

In Power Automate, if you tried to use a date field in your flow in an Email body or a Microsoft Team message, you will note that the default date format in Power Automat is shown as in this format YYYY-MM-ddT21:00:00.000Z even you have formatted the date field in your data source with your desired format!

format date in Power Automate
format date in Power Automate

In many cases, the default Power Automate Date format is not acceptable to be used, and you may need to format date in Power Automate in different date formats like dd/MM/yyyy, MM/dd/yyyy …etc

How to Format Date in Power Automate?

Consider, you have a table with a date column as shown below

format date in power automate email

And you need to create a Power Automat flow to send an email or post a Microsoft Team Message for each user in this table based on specific criteria.

In the message/email body, you need to send the task details like Task Name, and its finished date.

format date only in power automate

But when you send the date in Microsoft Team message or email body from Power Automate, you will note that the Power Automate Date format is shown in a standard format that may not match your requirements as below.

format date in Power Automate
format date in Power Automate

To Format Date in Power Automate, you have to do the following:

  1. Ensure that your field holds a value in a correct date fromat.
  2. Create a new variable with a string format outside your loop
  3. Set the created variable to the date value.
  4. Use the FormatDateTime() function in Power Automate.

1) Ensure Date Field Fomat

Regardless of your current data source, you have first to make sure that the current field value is in a correct date format to ensure that your flow will work as expected.

In our example, we have a “Finish Date” column in a correct date format that will be used in our Email body in Power Automate.

format date in power automate email

2) Create a new variable in Power Automate

Due to our flow will loop for each row in our table, you have to initialize a new variable outside this loop.

Initalize variable outside loop in Power Automate

How to Create a Variable in Power Automate?

To initialize or create a new variable in Power Automate to be outside your loop, you have to do the following:

  1. Between the trigger and the loop, click on the Plus icon to insert a new step as action.
create a variable in Power Automate
  1. Search for Variables, and from the variable search result, select “Initialize Variable“.
Initalize variable in Power Automate
  1. Set the Variable name as you prefer, then set the variable data type to “String”.
create variable in Power Automate

3) Set a variable in Power Automate

Now you have to set the date value to the newly created variable In your loop by doing the following:

  1. In your loop, add a new action.
add an action in Power Automate
  1. Search for variables, and then select “Set Variable” action.
set a variable in Power Automate
  1. Finally, in “Set Variable” action, select the variable name and the date field name.
set variable in Power Automate

4) Use FormatDateTime() in Power Automate

After setting the date variable with the date field, you can now use the FormatDateTime() in Power Automate to format your date in different date formats like dd/MM/yyyy, MM/dd/yyyy …etc

To format Date in Power Automate using FormatDateTime() function, you have to do the following:

  1. Below the “Set Variable” action, add another action to send Email or Post Microsoft Teams message to a specific channel for specific user as you need.
FormatDateTime() function
  1. In messae body, add new expression with the below function based on your variable name and the required date format.
use format date time in Power Automate
formatDateTime(variables('VariableName'),'MM-dd-yyyy')
  1. Click Ok to add the FormatDateTime function in your message body.
format date time power automate
  1. Now, test and run your flow, you should note that the Power Automate Date format is sent to your chanel with the desired date fromat that was used in the FormatDateTime() function.
Format Date only in Power Automate
Format Date in Power Automate

Format current date in Power Automate

In some scenarios, you may also need to send the current date in your email body or Microsoft Teams message, so in this case, you can easily use the utcNow() function from the expression section to send the current date.

utcNow()
format current date in Power Automate

However, you will note that the current date is sent in a format that may be not suitable for you as below:

format today date in power automate

To fix this issue and format the current date in Power Automate, you have also to use the formatDateTime() as the following:

formatDateTime(utcNow(),'MM-dd-yyyy')
how to format date in power automate

Great, the current date has been formatted in ‘MM-dd-yyyy’ format after using formatDateTime() in Power Automate as shown below.

power automate format current date MM-dd-yyyy
power automate format current date MM-dd-yyyy

Standard date and time format specifiers

To format date in Power Automat in different dates format as you desire, you have to check the following table that describes the standard date and time format specifiers.

Format specifier Description Examples
“d” Short date pattern.

More information:The short date (“d”) format specifier.
2009-06-15T13:45:30 -> 6/15/2009 (en-US)

2009-06-15T13:45:30 -> 15/06/2009 (fr-FR)

2009-06-15T13:45:30 -> 2009/06/15 (ja-JP)
“D” Long date pattern.

More information:The long date (“D”) format specifier.
2009-06-15T13:45:30 -> Monday, June 15, 2009 (en-US)

2009-06-15T13:45:30 -> 15 июня 2009 г. (ru-RU)

2009-06-15T13:45:30 -> Montag, 15. Juni 2009 (de-DE)
“f” Full date/time pattern (short time).

More information: The full date short time (“f”) format specifier.
2009-06-15T13:45:30 -> Monday, June 15, 2009 1:45 PM (en-US)

2009-06-15T13:45:30 -> den 15 juni 2009 13:45 (sv-SE)

2009-06-15T13:45:30 -> Δευτέρα, 15 Ιουνίου 2009 1:45 μμ (el-GR)
“F” Full date/time pattern (long time).

More information: The full date long time (“F”) format specifier.
2009-06-15T13:45:30 -> Monday, June 15, 2009 1:45:30 PM (en-US)

2009-06-15T13:45:30 -> den 15 juni 2009 13:45:30 (sv-SE)

2009-06-15T13:45:30 -> Δευτέρα, 15 Ιουνίου 2009 1:45:30 μμ (el-GR)
“g” General date/time pattern (short time).

More information: The general date short time (“g”) format specifier.
2009-06-15T13:45:30 -> 6/15/2009 1:45 PM (en-US)

2009-06-15T13:45:30 -> 15/06/2009 13:45 (es-ES)

2009-06-15T13:45:30 -> 2009/6/15 13:45 (zh-CN)
“G” General date/time pattern (long time).

More information: The general date long time (“G”) format specifier.
2009-06-15T13:45:30 -> 6/15/2009 1:45:30 PM (en-US)

2009-06-15T13:45:30 -> 15/06/2009 13:45:30 (es-ES)

2009-06-15T13:45:30 -> 2009/6/15 13:45:30 (zh-CN)
“M”, “m” Month/day pattern.

More information: The month (“M”, “m”) format specifier.
2009-06-15T13:45:30 -> June 15 (en-US)

2009-06-15T13:45:30 -> 15. juni (da-DK)

2009-06-15T13:45:30 -> 15 Juni (id-ID)
“O”, “o” round-trip date/time pattern.

More information: The round-trip (“O”, “o”) format specifier.
DateTime values:

2009-06-15T13:45:30 (DateTimeKind.Local) –> 2009-06-15T13:45:30.0000000-07:00

2009-06-15T13:45:30 (DateTimeKind.Utc) –> 2009-06-15T13:45:30.0000000Z

2009-06-15T13:45:30 (DateTimeKind.Unspecified) –> 2009-06-15T13:45:30.0000000

DateTimeOffset values:

2009-06-15T13:45:30-07:00 –> 2009-06-15T13:45:30.0000000-07:00
“R”, “r” RFC1123 pattern.

More information: The RFC1123 (“R”, “r”) format specifier.
2009-06-15T13:45:30 -> Mon, 15 Jun 2009 20:45:30 GMT
“s” Sortable date/time pattern.

More information: The sortable (“s”) format specifier.
2009-06-15T13:45:30 (DateTimeKind.Local) -> 2009-06-15T13:45:30

2009-06-15T13:45:30 (DateTimeKind.Utc) -> 2009-06-15T13:45:30
“t” Short time pattern.

More information: The short time (“t”) format specifier.
2009-06-15T13:45:30 -> 1:45 PM (en-US)

2009-06-15T13:45:30 -> 13:45 (hr-HR)

2009-06-15T13:45:30 -> 01:45 م (ar-EG)
“T” Long time pattern.

More information: The long time (“T”) format specifier.
2009-06-15T13:45:30 -> 1:45:30 PM (en-US)

2009-06-15T13:45:30 -> 13:45:30 (hr-HR)

2009-06-15T13:45:30 -> 01:45:30 م (ar-EG)
“u” Universal sortable date/time pattern.

More information: The universal sortable (“u”) format specifier.
With a DateTime value: 2009-06-15T13:45:30 -> 2009-06-15 13:45:30Z

With a DateTimeOffset value: 2009-06-15T13:45:30 -> 2009-06-15 20:45:30Z
“U” Universal full date/time pattern.

More information: The universal full (“U”) format specifier.
2009-06-15T13:45:30 -> Monday, June 15, 2009 8:45:30 PM (en-US)

2009-06-15T13:45:30 -> den 15 juni 2009 20:45:30 (sv-SE)

2009-06-15T13:45:30 -> Δευτέρα, 15 Ιουνίου 2009 8:45:30 μμ (el-GR)
“Y”, “y” Year month pattern.

More information: The year month (“Y”) format specifier.
2009-06-15T13:45:30 -> June 2009 (en-US)

2009-06-15T13:45:30 -> juni 2009 (da-DK)

2009-06-15T13:45:30 -> Juni 2009 (id-ID)
Any other single character Unknown specifier. Throws a run-time FormatException.
Ref: Standard date and time format strings

The following table also describes the custom date and time format specifiers and displays a result string produced by each format specifier.

Format specifier Description Examples
“d” The day of the month, from 1 through 31.

More information: The “d” Custom Format Specifier.
2009-06-01T13:45:30 -> 1

2009-06-15T13:45:30 -> 15
“dd” The day of the month, from 01 through 31.

More information: The “dd” Custom Format Specifier.
2009-06-01T13:45:30 -> 01

2009-06-15T13:45:30 -> 15
“ddd” The abbreviated name of the day of the week.

More information: The “ddd” Custom Format Specifier.
2009-06-15T13:45:30 -> Mon (en-US)

2009-06-15T13:45:30 -> Пн (ru-RU)

2009-06-15T13:45:30 -> lun. (fr-FR)
“dddd” The full name of the day of the week.

More information: The “dddd” Custom Format Specifier.
2009-06-15T13:45:30 -> Monday (en-US)

2009-06-15T13:45:30 -> понедельник (ru-RU)

2009-06-15T13:45:30 -> lundi (fr-FR)
“f” The tenths of a second in a date and time value.

More information: The “f” Custom Format Specifier.
2009-06-15T13:45:30.6170000 -> 6

2009-06-15T13:45:30.05 -> 0
“ff” The hundredths of a second in a date and time value.

More information: The “ff” Custom Format Specifier.
2009-06-15T13:45:30.6170000 -> 61

2009-06-15T13:45:30.0050000 -> 00
“fff” The milliseconds in a date and time value.

More information: The “fff” Custom Format Specifier.
6/15/2009 13:45:30.617 -> 617

6/15/2009 13:45:30.0005 -> 000
“ffff” The ten thousandths of a second in a date and time value.

More information: The “ffff” Custom Format Specifier.
2009-06-15T13:45:30.6175000 -> 6175

2009-06-15T13:45:30.0000500 -> 0000
“fffff” The hundred thousandths of a second in a date and time value.

More information: The “fffff” Custom Format Specifier.
2009-06-15T13:45:30.6175400 -> 61754

6/15/2009 13:45:30.000005 -> 00000
“ffffff” The millionths of a second in a date and time value.

More information: The “ffffff” Custom Format Specifier.
2009-06-15T13:45:30.6175420 -> 617542

2009-06-15T13:45:30.0000005 -> 000000
“fffffff” The ten millionths of a second in a date and time value.

More information: The “fffffff” Custom Format Specifier.
2009-06-15T13:45:30.6175425 -> 6175425

2009-06-15T13:45:30.0001150 -> 0001150
“F” If non-zero, the tenths of a second in a date and time value.

More information: The “F” Custom Format Specifier.
2009-06-15T13:45:30.6170000 -> 6

2009-06-15T13:45:30.0500000 -> (no output)
“FF” If non-zero, the hundredths of a second in a date and time value.

More information: The “FF” Custom Format Specifier.
2009-06-15T13:45:30.6170000 -> 61

2009-06-15T13:45:30.0050000 -> (no output)
“FFF” If non-zero, the milliseconds in a date and time value.

More information: The “FFF” Custom Format Specifier.
2009-06-15T13:45:30.6170000 -> 617

2009-06-15T13:45:30.0005000 -> (no output)
“FFFF” If non-zero, the ten thousandths of a second in a date and time value.

More information: The “FFFF” Custom Format Specifier.
2009-06-15T13:45:30.5275000 -> 5275

2009-06-15T13:45:30.0000500 -> (no output)
“FFFFF” If non-zero, the hundred thousandths of a second in a date and time value.

More information: The “FFFFF” Custom Format Specifier.
2009-06-15T13:45:30.6175400 -> 61754

2009-06-15T13:45:30.0000050 -> (no output)
“FFFFFF” If non-zero, the millionths of a second in a date and time value.

More information: The “FFFFFF” Custom Format Specifier.
2009-06-15T13:45:30.6175420 -> 617542

2009-06-15T13:45:30.0000005 -> (no output)
“FFFFFFF” If non-zero, the ten millionths of a second in a date and time value.

More information: The “FFFFFFF” Custom Format Specifier.
2009-06-15T13:45:30.6175425 -> 6175425

2009-06-15T13:45:30.0001150 -> 000115
“g”, “gg” The period or era.

More information: The “g” or “gg” Custom Format Specifier.
2009-06-15T13:45:30.6170000 -> A.D.
“h” The hour, using a 12-hour clock from 1 to 12.

More information: The “h” Custom Format Specifier.
2009-06-15T01:45:30 -> 1

2009-06-15T13:45:30 -> 1
“hh” The hour, using a 12-hour clock from 01 to 12.

More information: The “hh” Custom Format Specifier.
2009-06-15T01:45:30 -> 01

2009-06-15T13:45:30 -> 01
“H” The hour, using a 24-hour clock from 0 to 23.

More information: The “H” Custom Format Specifier.
2009-06-15T01:45:30 -> 1

2009-06-15T13:45:30 -> 13
“HH” The hour, using a 24-hour clock from 00 to 23.

More information: The “HH” Custom Format Specifier.
2009-06-15T01:45:30 -> 01

2009-06-15T13:45:30 -> 13
“K” Time zone information.

More information: The “K” Custom Format Specifier.
With DateTime values:

2009-06-15T13:45:30, Kind Unspecified ->

2009-06-15T13:45:30, Kind Utc -> Z

2009-06-15T13:45:30, Kind Local -> -07:00 (depends on local computer settings)

With DateTimeOffset values:

2009-06-15T01:45:30-07:00 –> -07:00

2009-06-15T08:45:30+00:00 –> +00:00
“m” The minute, from 0 through 59.

More information: The “m” Custom Format Specifier.
2009-06-15T01:09:30 -> 9

2009-06-15T13:29:30 -> 29
“mm” The minute, from 00 through 59.

More information: The “mm” Custom Format Specifier.
2009-06-15T01:09:30 -> 09

2009-06-15T01:45:30 -> 45
“M” The month, from 1 through 12.

More information: The “M” Custom Format Specifier.
2009-06-15T13:45:30 -> 6
“MM” The month, from 01 through 12.

More information: The “MM” Custom Format Specifier.
2009-06-15T13:45:30 -> 06
“MMM” The abbreviated name of the month.

More information: The “MMM” Custom Format Specifier.
2009-06-15T13:45:30 -> Jun (en-US)

2009-06-15T13:45:30 -> juin (fr-FR)

2009-06-15T13:45:30 -> Jun (zu-ZA)
“MMMM” The full name of the month.

More information: The “MMMM” Custom Format Specifier.
2009-06-15T13:45:30 -> June (en-US)

2009-06-15T13:45:30 -> juni (da-DK)

2009-06-15T13:45:30 -> uJuni (zu-ZA)
“s” The second, from 0 through 59.

More information: The “s” Custom Format Specifier.
2009-06-15T13:45:09 -> 9
“ss” The second, from 00 through 59.

More information: The “ss” Custom Format Specifier.
2009-06-15T13:45:09 -> 09
“t” The first character of the AM/PM designator.

More information: The “t” Custom Format Specifier.
2009-06-15T13:45:30 -> P (en-US)

2009-06-15T13:45:30 -> 午 (ja-JP)

2009-06-15T13:45:30 -> (fr-FR)
“tt” The AM/PM designator.

More information: The “tt” Custom Format Specifier.
2009-06-15T13:45:30 -> PM (en-US)

2009-06-15T13:45:30 -> 午後 (ja-JP)

2009-06-15T13:45:30 -> (fr-FR)
“y” The year, from 0 to 99.

More information: The “y” Custom Format Specifier.
0001-01-01T00:00:00 -> 1

0900-01-01T00:00:00 -> 0

1900-01-01T00:00:00 -> 0

2009-06-15T13:45:30 -> 9

2019-06-15T13:45:30 -> 19
“yy” The year, from 00 to 99.

More information: The “yy” Custom Format Specifier.
0001-01-01T00:00:00 -> 01

0900-01-01T00:00:00 -> 00

1900-01-01T00:00:00 -> 00

2019-06-15T13:45:30 -> 19
“yyy” The year, with a minimum of three digits.

More information: The “yyy” Custom Format Specifier.
0001-01-01T00:00:00 -> 001

0900-01-01T00:00:00 -> 900

1900-01-01T00:00:00 -> 1900

2009-06-15T13:45:30 -> 2009
“yyyy” The year as a four-digit number.

More information: The “yyyy” Custom Format Specifier.
0001-01-01T00:00:00 -> 0001

0900-01-01T00:00:00 -> 0900

1900-01-01T00:00:00 -> 1900

2009-06-15T13:45:30 -> 2009
“yyyyy” The year as a five-digit number.

More information: The “yyyyy” Custom Format Specifier.
0001-01-01T00:00:00 -> 00001

2009-06-15T13:45:30 -> 02009
“z” Hours offset from UTC, with no leading zeros.

More information: The “z” Custom Format Specifier.
2009-06-15T13:45:30-07:00 -> -7
“zz” Hours offset from UTC, with a leading zero for a single-digit value.

More information: The “zz” Custom Format Specifier.
2009-06-15T13:45:30-07:00 -> -07
“zzz” Hours and minutes offset from UTC.

More information: The “zzz” Custom Format Specifier.
2009-06-15T13:45:30-07:00 -> -07:00
“:” The time separator.

More information: The “:” Custom Format Specifier.
2009-06-15T13:45:30 -> : (en-US)

2009-06-15T13:45:30 -> . (it-IT)

2009-06-15T13:45:30 -> : (ja-JP)
“/” The date separator.

More Information: The “/” Custom Format Specifier.
2009-06-15T13:45:30 -> / (en-US)

2009-06-15T13:45:30 -> – (ar-DZ)

2009-06-15T13:45:30 -> . (tr-TR)
string

string
Literal string delimiter.

More information: Character literals.
2009-06-15T13:45:30 (“arr:” h:m t) -> arr: 1:45 P

2009-06-15T13:45:30 (‘arr:’ h:m t) -> arr: 1:45 P
% Defines the following character as a custom format specifier.

More information:Using Single Custom Format Specifiers.
2009-06-15T13:45:30 (%h) -> 1
\ The escape character.

More information: Character literals and Using the Escape Character.
2009-06-15T13:45:30 (h \h) -> 1 h
Any other character The character is copied to the result string unchanged.

More information: Character literals.
2009-06-15T01:45:30 (arr hh:mm t) -> arr 01:45 A
Ref: Custom date and time format strings

Conclusion

In conclusion, we have learned how to format date in Power Automate in Email body or Microsoft Teams Message in different formats as we need.

See Also
Join us
Need Help
  • Have a related question? Please ask it at deBUG.to Community.


Mohamed El-Qassas

I'm Microsoft MVP, SharePoint StackExchange Moderator, Microsoft QnA Moderator, C# Corner MVP, Microsoft TechNet Wiki Judge, and Senior Technical Consultant with +12 years of experience in SharePoint, Project Server and Power Platform.