Intro
Power Apps Date Formatting may seem simple at first glance. But once you move beyond basic use cases and start building production-ready apps, it quickly becomes more complex.
Regional differences, time zone offsets, and inconsistent formatting between text and datetime fields can lead to confusing or even incorrect displays. Add conditional logic or integrations with backend systems, and things can get messy fast.
This guide walks you through everything you need to know about handling date and time in Power Apps. You’ll find clear examples for both EU and US formats, common mistakes to avoid, and practical tips that will help you build consistent, user-friendly apps that work anywhere.
Working with the Current Date & Time
To get the current moment in your app:
// Returns date only
Today()
// Returns date & time
Now()
You can also combine user inputs from dropdowns:Use case: Display a dynamic greeting:
"Good day! Today is " & Text(Today(), "dddd, dd mmmm yyyy")
// Output: "Good day! Today is Tuesday, 06 August 2025"
Constructing Date and Time Values
Sometimes you want to create dates or times from scratch:
Date(2025, 11, 15) // Outputs: 15/11/2025
Time(9, 45, 0) // Outputs: 09:45:00
You can also combine user inputs from dropdowns:
Date(Value(dd_Year.Selected.Value), Value(dd_Month.Selected.Value), Value(dd_Day.Selected.Value))
Common Transformations & Checks
Extract values from any datetime field:
Year(varDate) // 2025
Month(varDate) // 8
Day(varDate) // 6
Hour(varDateTime) // 8
Minute(varDateTime) // 45
Weekday(varDate) // 3 (Tuesday)
Date Calculations & Differences
Need to calculate future or past dates?
DateAdd(Today(), 10, Days) // → 16/08/2025
DateAdd(Now(), -1, Months) // → 06/07/2025
Find the number of days between two dates:
DateDiff(Date(2025, 8, 1), Date(2025, 12, 25), Days) // → 146
Formatting Dates for Display
Power Apps gives you full control over how you display dates:
| Region | Format Type | Power Fx Expression | Example Output |
|---|---|---|---|
| 📅 Full Date & Time Formats | |||
| 🇪🇺 EU | Date + Time (24h) | Text(Now(), "dd-MM-yyyy HH:mm:ss") |
21-08-2025 14:45:30 |
| 🇺🇸 US | Date + Time (12h) | Text(Now(), "MM/dd/yyyy h:mm:ss AM/PM") |
08/21/2025 2:45:30 PM |
| 🇪🇺 EU | Short with slashes | Text(Now(), "dd/MM/yyyy") |
21/08/2025 |
| 🇺🇸 US | Short with slashes | Text(Now(), "M/d/yyyy") |
8/21/2025 |
| 🇪🇺 EU | Long (text) | Text(Now(), "dddd d mmmm yyyy") |
Thursday 21 August 2025 |
| 🇺🇸 US | Long (text) | Text(Now(), "dddd, mmmm d, yyyy") |
Thursday, August 21, 2025 |
| 🌐 ISO & Backend-Friendly Formats | |||
| 🌐 All | ISO 8601 (UTC) | Text(Now(), "yyyy-mm-ddThh:mm:ssZ") |
2025-08-21T14:45:30Z |
| 🌐 All | Simple API Format | Text(Now(), "yyyy-mm-dd") |
2025-08-21 |
| 🌐 All | Compact (filenames) | Text(Now(), "yyyymmdd") |
20250821 |
| 🌐 All | Year + Month | Text(Now(), "yyyy-mm") |
2025-08 |
| 🕒 Time-Only Formats | |||
| 🌐 All | 24-Hour Time | Text(Now(), "HH:mm") |
14:45 |
| 🌐 All | 12-Hour Time | Text(Now(), "h:mm AM/PM") |
2:45 PM |
| 🌐 All | Time with Seconds | Text(Now(), "hh:mm:ss") |
02:45:30 |
| 📆 Date-Only Formats | |||
| 🇪🇺 EU | Short Month Name | Text(Today(), "dd mmm yyyy") |
21 Aug 2025 |
| 🇺🇸 US | Short Month Name | Text(Today(), "mmm d, yyyy") |
Aug 21, 2025 |
| 🌐 All | Weekday Name | Text(Today(), "dddd") |
Thursday |
| 🌐 All | Day Only | Text(Today(), "d") |
21 |