A Comprehensive Guide 2024 for Beginner to UTCNow And FormatDateTime in Power Automate

5
(1)

A Comprehensive Guide for 2026: UTCNow and FormatDateTime in Power Automate

If you have ever built a Power Automate flow that needed to stamp a record with today’s date, send a deadline reminder, or name a file dynamically, you have already run into the functions at the heart of this guide. In 2026, with Microsoft’s Copilot-assisted expression editor now surfacing function suggestions in real time, UTCNow and FormatDateTime in Power Automate are easier to discover than ever — but they still trip up beginners and intermediate builders alike. This guide cuts through the confusion so you can use both functions confidently from day one.

Table of Contents

Table of Contents

Table of Contents

Table of Contents


https://www.youtube.com/watch?v=uFZxXMuLj-E

Introduction to Power Automate and Why Dates Matter

Power Automate is Microsoft’s cloud-based workflow automation platform. It lets individuals and businesses connect apps, automate repetitive tasks, and trigger actions based on events — all without writing traditional code. According to Microsoft’s Power Platform release notes, the platform now serves over 10 million monthly active users, and date/time functions consistently rank among the most searched topics in the community forums.

Why do dates cause so much friction? Because every flow that touches a real-world process — approvals, reports, SLA tracking, file archiving — eventually needs to know when something happened or when something is due. Get the date handling wrong and you end up with mismatched timestamps, broken conditions, or emails that say “January 1, 1970.”

WhatsApp Group Join Now
Telegram Group Join Now

The two functions that solve most of these problems are:

  • utcNow() — captures the current moment in time
  • formatDateTime() — presents that moment in a human-readable or system-friendly format

Let’s build a complete picture of both.


Understanding UTCNow in Power Automate

UTCNow and FormatDateTime: Flowchart showing how utcNow captures the current UTC timestamp, stores it, and then uses it in em

What Is UTCNow?

utcNow() is a Power Automate expression function that returns the current date and time in Coordinated Universal Time (UTC). According to Microsoft’s official Workflow Definition Language reference, the function returns a timestamp in ISO 8601 format: yyyy-MM-ddTHH:mm:ssZ.

A typical output looks like this:

WhatsApp Group Join Now
Telegram Group Join Now
2026-03-15T09:42:00Z

The trailing Z confirms the timestamp is in UTC — not your local time zone, not the server’s regional setting. This consistency is what makes utcNow() so valuable for global workflows.

Basic Syntax

Inside a Power Automate expression field, you write:

@utcNow()

No parameters are required. The function takes a snapshot of the current UTC time at the moment the action runs.

UTCNow vs. Now() — What Is the Difference?

This is one of the most frequently asked questions in the Microsoft Tech Community Power Automate forum. Here is the practical distinction:

In Power Automate cloud flows, now() and utcNow() return the same value. The platform runs in UTC internally. The confusion arises when users assume now() returns their local time — it does not. Always prefer utcNow() because its name makes the UTC context explicit, reducing errors when flows are shared across teams in different time zones.

What Changed for 2026

2026 Update: With the 2026 Wave 1 Power Platform release, Microsoft’s enhanced expression editor (available in the updated cloud flow designer) now shows inline documentation and example outputs for utcNow() as you type. This means you can preview the function’s return format without leaving the expression panel — a significant time-saver for beginners.


How to Use FormatDateTime in Power Automate

What Is FormatDateTime?

formatDateTime() takes a raw timestamp — like the output of utcNow() — and converts it into a string formatted exactly the way you need. This is the function you reach for when you want a date that looks like “March 15, 2026” instead of “2026-03-15T09:42:00Z”.

The official Microsoft reference for formatDateTime defines the full syntax as:

formatDateTime('<timestamp>', '<format>'?, '<locale>'?)
  • timestamp — the date/time value you want to format (required)
  • format — a .NET format string defining the output shape (optional; defaults to ISO 8601 if omitted)
  • locale — a culture code like en-US or fr-FR that controls locale-specific output (optional)

Common FormatDateTime Examples

Here are the expressions you will use most often:

ISO date only (for file names and database fields):

@formatDateTime(utcNow(), 'yyyy-MM-dd')

Output: 2026-03-15

Long human-readable date:

@formatDateTime(utcNow(), 'MMMM dd, yyyy')

Output: March 15, 2026

Date and time with 12-hour clock:

@formatDateTime(utcNow(), 'MM/dd/yyyy hh:mm tt')

Output: 03/15/2026 09:42 AM

Day of the week included:

@formatDateTime(utcNow(), 'dddd, MMMM dd, yyyy')

Output: Sunday, March 15, 2026

ISO 8601 with time zone offset (for system integrations):

@formatDateTime(utcNow(), 'yyyy-MM-ddTHH:mm:ssZ')

Output: 2026-03-15T09:42:00Z

Using Locale-Aware Formatting in 2026

The optional third parameter — the locale — was underused before 2023 but is now a recommended pattern in Microsoft’s documentation for global workflows. It controls how month names, day names, and separators appear.

French locale:

@formatDateTime(utcNow(), 'dddd dd MMMM yyyy', 'fr-FR')

Output: dimanche 15 mars 2026

Indian locale (Hindi):

@formatDateTime(utcNow(), 'dd MMMM yyyy', 'hi-IN')

This matters when your flow sends emails to users in different regions and you want the date to feel natural in their language.

What Changed for 2026

2026 Update: Microsoft’s 2026 Wave 2 and 2026 Wave 1 releases introduced an enhanced expression editor that validates format strings in real time and flags unsupported culture codes before you save. This dramatically reduces the “invalid format string” runtime errors that were among the most common FormatDateTime complaints in the community forum.


Power Automate Date Functions: The Full Toolkit

utcNow() and formatDateTime() do not work in isolation. Understanding the surrounding date functions makes your flows far more powerful. Here is a practical reference:

addDays()

Adds a specified number of days to a date. Perfect for calculating deadlines.

@addDays(utcNow(), 7)

Returns the date seven days from today — useful for setting approval deadlines or expiry dates.

You can also subtract days by passing a negative number:

@addDays(utcNow(), -30)

Returns the date 30 days ago — useful for filtering records created in the last month.

Formatted version (combining with formatDateTime):

@formatDateTime(addDays(utcNow(), 7), 'MMMM dd, yyyy')

Output: March 22, 2026

addHours() and addMinutes()

@addHours(utcNow(), 2)
@addMinutes(utcNow(), 45)

Both functions follow the same pattern as addDays(). Use these when you need to calculate response windows within a single day — for example, “this ticket must be acknowledged within 4 hours.”

subtractFromTime()

@subtractFromTime(utcNow(), 1, 'Week')

Subtracts a specified interval from a timestamp. The third parameter accepts: Second, Minute, Hour, Day, Week, Month, Year. This is useful for generating “last week’s” date range in report flows.

convertTimeZone()

@convertTimeZone(utcNow(), 'UTC', 'Eastern Standard Time')

Converts a UTC timestamp to a specific time zone. This is the recommended pattern in Microsoft’s official documentation for locale-aware date handling, replacing older workarounds used before 2023. We cover this in depth in the next section.

dayOfWeek(), dayOfMonth(), dayOfYear()

These extract specific components from a date:

@dayOfWeek(utcNow())       // Returns 0 (Sunday) through 6 (Saturday)
@dayOfMonth(utcNow())      // Returns 1–31
@dayOfYear(utcNow())       // Returns 1–366

Useful for conditional logic — for example, only sending a report if today is a Monday (dayOfWeek(utcNow()) equals 1).


Converting UTCNow to a Specific Time Zone

UTCNow and FormatDateTime: Diagram depicting conversion of a UTC timestamp to a target time zone and then formatting it for d

Why Time Zone Conversion Matters

utcNow() always returns UTC. If your flow sends a meeting reminder to a user in Kolkata (IST, UTC+5:30) or New York (EST, UTC-5), showing them a UTC timestamp is confusing. The convertTimeZone() function solves this.

The convertTimeZone() Pattern

@convertTimeZone(utcNow(), 'UTC', 'India Standard Time')

Then wrap it with formatDateTime() to make it readable:

@formatDateTime(convertTimeZone(utcNow(), 'UTC', 'India Standard Time'), 'dd MMMM yyyy hh:mm tt')

Output: 15 March 2026 03:12 PM

Common Time Zone Strings for Power Automate

Power Automate uses Windows time zone IDs (not IANA identifiers). Here are the most commonly needed ones:

Pro Tip: During daylight saving time transitions, use the standard time string (e.g., Eastern Standard Time) — Power Automate automatically adjusts for DST when the time zone supports it.

What Changed for 2026

2026 Update: Microsoft’s documentation now explicitly recommends the convertTimeZone() + formatDateTime() combination as the standard pattern for all locale-sensitive date output, replacing the older approach of storing UTC offsets as variables. If you have older flows using manual offset arithmetic (e.g., addHours(utcNow(), 5.5) for IST), migrating to convertTimeZone() is now the best practice.


Common UTCNow and FormatDateTime Mistakes (and How to Fix Them)

The Power Automate community forum has logged thousands of threads specifically around formatDateTime errors, making it one of the top five most discussed function topics. Here are the mistakes that generate the most confusion — and their fixes.

Mistake 1: Wrapping the Expression in Quotes

Wrong:

@formatDateTime("utcNow()", 'yyyy-MM-dd')

Right:

@formatDateTime(utcNow(), 'yyyy-MM-dd')

utcNow() is a function call, not a string. Wrapping it in quotes passes the literal text “utcNow()” as the timestamp, which causes an invalid argument error.

Mistake 2: Using Double Quotes for the Format String

Power Automate’s expression engine expects single quotes around format strings.

Wrong:

@formatDateTime(utcNow(), "yyyy-MM-dd")

Right:

@formatDateTime(utcNow(), 'yyyy-MM-dd')

Mistake 3: Confusing .NET Format Strings with JavaScript Formats

Power Automate uses .NET format specifiers, not JavaScript or Python formats. A common mistake is using MM/DD/YYYY (JavaScript style) instead of MM/dd/yyyy (.NET style). In .NET format strings:

  • yyyy = four-digit year ✅
  • YYYY = not valid in .NET ❌
  • dd = two-digit day ✅
  • DD = not valid in .NET ❌
  • MM = two-digit month ✅
  • mm = minutes (not month!) ⚠️

Mistake 4: Passing a Non-UTC Timestamp to formatDateTime Without Converting First

If you pull a date from SharePoint or Dataverse and pass it directly to formatDateTime(), you may get unexpected results if that date is stored in local time rather than UTC. Always confirm the source format before chaining functions.

Mistake 5: Assuming the Flow Runs in Your Local Time Zone

Power Automate cloud flows run in UTC. If your Recurrence trigger is set to fire at “9:00 AM” and you are in Eastern Time (UTC-5), the flow actually fires at 2:00 PM UTC. Use convertTimeZone() to present times correctly to end users, and set your Recurrence trigger’s time zone explicitly in the trigger settings.


Real-World Use Cases: Putting It All Together

Use Case 1: Date-Stamped File Names in SharePoint

When a flow creates a document or exports a report, you want the file name to include today’s date so archives stay organized.

Expression for file name:

@concat('Monthly_Report_', formatDateTime(utcNow(), 'yyyy-MM-dd'), '.xlsx')

Output: Monthly_Report_2026-03-15.xlsx

Use Case 2: Approval Deadline Notifications

An approval flow needs to remind approvers that their deadline is in 48 hours.

Calculate deadline:

@formatDateTime(addDays(utcNow(), 2), 'dddd, MMMM dd, yyyy')

Output: Tuesday, March 17, 2026

This output can be dropped directly into an email body: “Please complete your approval by Tuesday, March 17, 2026.”

Use Case 3: SLA Tracking — Is This Ticket Overdue?

In a condition action, compare the ticket creation date against the current UTC time:

@greater(utcNow(), addDays(triggerOutputs()?['body/CreatedDate'], 3))

If this condition is true, the ticket is more than three days old and has breached SLA. Trigger an escalation email automatically.

Use Case 4: Automated Date-Stamped Email Subject Lines

A scheduled flow sends a weekly status report every Monday. The email subject should reflect the reporting week.

Email subject expression:

@concat('Weekly Status Report — Week of ', formatDateTime(utcNow(), 'MMMM dd, yyyy'))

Output: Weekly Status Report — Week of March 15, 2026

Use Case 5: Logging Records to Dataverse with UTC Timestamps

When writing a record to Dataverse, always store timestamps in UTC using utcNow(). Convert to local time only at the display layer (Power Apps, emails, reports). This keeps your data clean and query-friendly regardless of where your users are located.


Scheduling Tasks in Power Automate: A Quick Walkthrough

Scheduled flows are one of the most practical applications of utcNow() and formatDateTime(). Here is how to set one up:

  1. Create a new flow and choose Scheduled cloud flow as the flow type.
  2. Define the trigger: Set the start date, time, and recurrence interval (hourly, daily, weekly, etc.). Critically, set the time zone in the trigger settings so the platform interprets your chosen time correctly.
  3. Add a Compose action to build your formatted date string using formatDateTime(utcNow(), 'yyyy-MM-dd'). Store this value so you can reuse it across multiple actions in the flow without calling utcNow() multiple times (which could return slightly different values if the flow takes time to run).
  4. Add your actions: Send emails, create files, update records — referencing the Compose output wherever you need today’s date.
  5. Test the flow using the “Test” button before activating it in production.

Best Practice: Call utcNow() once at the start of your flow inside a Compose or Initialize Variable action, then reference that stored value throughout. This ensures all date references in a single flow run reflect the exact same timestamp.


2026 Power Platform Updates That Affect Date Functions

Microsoft releases two major Power Platform update waves per year. The 2026 Wave 2 and 2026 Wave 1 releases introduced several improvements directly relevant to date function usage:

Copilot Integration in the Expression Editor

The updated cloud flow designer now includes Copilot-assisted expression building. You can describe what you want in plain English — for example, “format today’s date as Month Day Year” — and Copilot will suggest the corresponding formatDateTime(utcNow(), 'MMMM dd, yyyy') expression. This lowers the barrier for beginners significantly, though understanding the underlying syntax remains important for troubleshooting.

Enhanced Expression Validation

The 2026 expression editor validates format strings and function arguments before you save the flow, surfacing errors at design time rather than at runtime. This is a direct response to the high volume of formatDateTime error threads in the community forum and represents a meaningful quality-of-life improvement.

Improved Time Zone Picker

The Recurrence trigger and several connector actions now include a searchable time zone picker with friendly names (e.g., “India Standard Time (UTC+5:30)”) rather than requiring you to know the exact Windows time zone string. This reduces one of the most common configuration mistakes in scheduled flows.


Dataverse and Date Functions: What You Need to Know

Microsoft Dataverse is the cloud-based data storage layer within the Power Platform. When your flows read from or write to Dataverse, date handling requires extra care.

Key points for working with Dataverse dates in Power Automate:

  • Dataverse stores date-time fields in UTC internally. When you retrieve a date-time value from Dataverse in a flow, it arrives as a UTC ISO 8601 string.
  • Use formatDateTime() to display Dataverse dates in a readable format for email bodies or file names.
  • Use convertTimeZone() to shift a Dataverse UTC date into the recipient’s local time before displaying it.
  • When writing a date back to Dataverse, pass a UTC ISO 8601 string (e.g., the raw output of utcNow()) to avoid time zone conflicts.

Example — Reading a Dataverse date and formatting it for an email:

@formatDateTime(
  convertTimeZone(
    outputs('Get_record')?['body/createdon'],
    'UTC',
    'Eastern Standard Time'
  ),
  'MMMM dd, yyyy hh:mm tt'
)

This takes the createdon field from a Dataverse record, converts it from UTC to Eastern Time, and formats it as a human-readable string.


Frequently Asked Questions

What is the difference between UTCNow() and Now() in Power Automate?

In Power Automate cloud flows, both functions return the current UTC time. The practical difference is clarity: utcNow() makes it explicit that the timestamp is in UTC, which prevents confusion when flows are shared across teams. Microsoft’s documentation and community best practices recommend utcNow() over now() for all cloud flow use cases.

How do I format a UTCNow timestamp into a human-readable date like “March 15, 2026”?

Use formatDateTime() with the MMMM dd, yyyy format string:

@formatDateTime(utcNow(), 'MMMM dd, yyyy')

This returns March 15, 2026. Adjust the format string to match your preferred style.

Why does FormatDateTime return an error or unexpected result in my flow?

The most common causes are: (1) using double quotes instead of single quotes around the format string, (2) using JavaScript-style format specifiers like YYYY or DD instead of .NET specifiers like yyyy or dd, (3) confusing MM (month) with mm (minutes). Review the official formatDateTime reference to verify your format string.

How do I convert UTCNow to Eastern Time or India Standard Time in Power Automate?

Use the convertTimeZone() function:

@convertTimeZone(utcNow(), 'UTC', 'Eastern Standard Time')
@convertTimeZone(utcNow(), 'UTC', 'India Standard Time')

Wrap the result with formatDateTime() to display it in your preferred format.

Can I use UTCNow and FormatDateTime in a scheduled flow to name files automatically?

Yes. This is one of the most practical applications. Inside a scheduled flow, use:

@concat('Report_', formatDateTime(utcNow(), 'yyyy-MM-dd'), '.xlsx')

Store this in a Compose action and reference it as the file name when creating documents in SharePoint, OneDrive, or any connected storage service.

Should I call utcNow() multiple times in one flow, or store it once?

Store it once. Call utcNow() in a Compose or Initialize Variable action at the start of your flow, then reference that stored value everywhere else. If you call utcNow() in multiple actions, each call captures a slightly different timestamp (because flow execution takes time), which can create inconsistencies in your records.


Conclusion

Mastering UTCNow and FormatDateTime in Power Automate is one of the highest-leverage skills you can develop as a flow builder. These two functions — combined with convertTimeZone(), addDays(), and the other date helpers in the toolkit — give you precise control over how time is captured, calculated, and displayed across every workflow you build. With Microsoft’s 2026 Wave 1 improvements making the expression editor smarter and more forgiving, there has never been a better time to move beyond copy-pasted expressions and truly understand what your date functions are doing.

Start with one real flow in your environment today — a date-stamped report, a deadline reminder, or a simple SLA tracker — and apply the patterns from this guide. Once you see them working, the rest of Power Automate’s date capabilities will follow naturally.


Want to go deeper? Explore how to use the convertTimeZone function for global workflows, how to compare dates correctly inside condition actions, and how to send automated email reports with dynamic date subjects — all of which build directly on the foundation covered here.

References & Read More

Related Wealth Stack guides:

External sources:

How useful was this post?

Click on a star to rate it!

Average rating 5 / 5. Vote count: 1

No votes so far! Be the first to rate this post.

As you found this post useful...

Follow us on social media!

We are sorry that this post was not useful for you!

Let us improve this post!

Tell us how we can improve this post?

3 thoughts on “A Comprehensive Guide 2024 for Beginner to UTCNow And FormatDateTime in Power Automate”

Leave a Comment