cancel
Showing results for 
Search instead for 
Did you mean: 
Reply
SergeyG
New Member

Convert date object to UTC string

Hi Community,

Trying to build a flow to close Azure DevOps work items when a related Microsoft ToDo is completed (I register WI & ToDo IDs in an Excel when a separate flow creates ToDo from a WI).

I'm getting a list of all ToDo's and filter them to go over only those that were completed since the beginning of the current hour: Completed Date-Time is greater than startOfHour(utcNow()). The error I get is "Unable to process template language expressions for action 'Condition' at line '1' and column '26584': 'The template language function 'greater' expects two parameter of matching types. The function was invoked with values of type 'Object' and 'String' that do not match.'.". The problem is Completed Date-Time is a date object returning:

 

"completedDateTime": {
"dateTime": "2022-01-06T00:00:00",
"timeZone": "UTC"
}

 

 

 

While the result of startOfHour(utcNow()) is a string: "2022-01-07T12:00:00.0000000Z"

 

 

 

How do I convert Completed Date-Time to a string in UTC format?

 

Thanks in advance for any help!

SergeyG_0-1641558245868.png

 

1 ACCEPTED SOLUTION

Accepted Solutions

Hi @SergeyG 

 

Before you try to insert the action step try the following

 

image.png

 

Expressions are:

 

formatDateTime(item()?['completedDateTime/dateTime'],'yyyy-MM-dd')
 
formatDateTime(utcNow(),'yyyy-MM-dd'). Right hand side expression change it accordingly. 
 
Here I am showing both dates to get in same format for the comparison.


Did I answer your question? Mark my post as a solution!

If you liked my response, please consider giving it a thumbs up


Proud to be a Flownaut!

Learn more from my blog
Power Automate Video Tutorials

View solution in original post

12 REPLIES 12
abm
Super User
Super User

Hi @SergeyG 

 

Use the below action step.

 

image.png

 

Under the format string you can specify your custom expression as well.

 

If you looking to get the date only then use

 

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

 

You could use the same expression for the completed date as well. This way you are only comparing both with same formatted values. 

 

Thanks



Did I answer your question? Mark my post as a solution!

If you liked my response, please consider giving it a thumbs up


Proud to be a Flownaut!

Learn more from my blog
Power Automate Video Tutorials

Hi @abm , thanks for the quick reply. 

 

I get the idea but can't insert an action to convert the dates within the "Apply to each" step but before its condition where I compare the times. Do I put it before the "Apply to each"?

 

Thanks

Hi @SergeyG 

 

Before you try to insert the action step try the following

 

image.png

 

Expressions are:

 

formatDateTime(item()?['completedDateTime/dateTime'],'yyyy-MM-dd')
 
formatDateTime(utcNow(),'yyyy-MM-dd'). Right hand side expression change it accordingly. 
 
Here I am showing both dates to get in same format for the comparison.


Did I answer your question? Mark my post as a solution!

If you liked my response, please consider giving it a thumbs up


Proud to be a Flownaut!

Learn more from my blog
Power Automate Video Tutorials

Thank you @abm, this has worked.

drummer
Helper II
Helper II

This condition of date1 is less than or equal to date 2 does not work with formatDateTime to yyyy-MM-dd!  Can someone confirm this in power automate conditions or are there bugs, etc. any help is appreciated for a simple this date is less than that date condition!

 

Hi @drummer 

 

Could you please post a new thread and a screenshot of your flow? I will have a look. For the date comparisons there are not bugs in PowerAutomate in my knowledge.

 

Thanks



Did I answer your question? Mark my post as a solution!

If you liked my response, please consider giving it a thumbs up


Proud to be a Flownaut!

Learn more from my blog
Power Automate Video Tutorials

delete pls. 

Hi @drummer 

 

When I click the link, it says message not found error.

 

Thanks



Did I answer your question? Mark my post as a solution!

If you liked my response, please consider giving it a thumbs up


Proud to be a Flownaut!

Learn more from my blog
Power Automate Video Tutorials
drummer
Helper II
Helper II

@abm They marked it as spam. But it seems the connector is corrupt. I took out my ticks, etc and just used numbers and still got false e.g. 3 is less than or equal to 5 came back false. I added another if/then connect above in the flow and it returns true so I believe my logic is fine.

But in short,  what date formats are acceptable for if/then condition greater/less than, equal. I've seen it shown as needing yyyy-MM-dd to calculate. Is there any definitive documentation?  

Hi @drummer 

 

Are you using SharePoint or Excel? Could you post some screenshots please?

 

Thanks



Did I answer your question? Mark my post as a solution!

If you liked my response, please consider giving it a thumbs up


Proud to be a Flownaut!

Learn more from my blog
Power Automate Video Tutorials

@abm I am using dynamics 365 with power automate so dataverse (was cds).  Turns out the condition was corrupt not my logic. I put directly in condition 3 is less than 5 and it still gave me a false. 

Unless there is some format issue for conditions I am not aware for numbers.  My question is around date format if yyyy-MM-dd to compare if that is all that is needed and I believe dates in dynamics store in utc so conversion.  I know how to convert time zones and format so it's just finding definitive guidance with format for comparing times in conditions, specifically if greater/less then, etc. I hope that is clear now and appreciate your help. 


Helpful resources

Announcements
Power Automate News & Announcements

Power Automate News & Announcements

Keep up to date with current events and community announcements in the Power Automate community.

Power Automate Community Blog

Power Automate Community Blog

Check out the latest Community Blog from the community!

Top Solution Authors
Users online (3,536)