cancel
Showing results for 
Search instead for 
Did you mean: 
Reply
Frequent Visitor

@formatDateTime

Hello,

I have problem with @formatDateTime forumala in compose action. I need to format date  to supported flow format.

 

I tried these variants:

"@formatDateTime(‘custom_date_column’, 'o')"

"@formatDateTime(‘custom_date_column’)"

"@formatDateTime(concat(formatDateTime(‘custom_date_column’​​,'yyyy-MM-ddThh:mm:ss'),'-3:00'),'d/MM/yyyy hh:mm tt')"

"@formatDateTime(‘custom_date_column’,'yyyy-MM-dd hh:mm:ss')"

 

And in all variants, I receive error

 'In function 'formatDateTime', the value provided for date time string (‘custom_date_column’ was not valid. The datetime string must match ISO 8601 format.'.

 

Maybe someone have ideas how to format date column from SharePoint Online list?

1 ACCEPTED SOLUTION

Accepted Solutions
Community Support
Community Support

Hi @Mumbrasas,

 

Simply input the column name with the FormatDateTime function from SharePoint online list would not work here.

As the function is used under Microsoft Flow, we should use the Triggers/Actions and the related part from the them to identify the corresponding columns.

For example, here we take use of the When a New Item is created as the Flow trigger, then we need to use the EndTime value from the SharePoint list, we should write the formula under Compose Action as below:

"@formatdatetime(triggerBody()?['EndTime'],'yyyy-MM-ddThh:mm:ss')"

Mostly this is not so easy for end users to handle, so I would share a little tricks to find the content part:

1. Add a Compose Action after the trigger/Action, then specify the Compose input with the following format:

"@formatdatetime( ,'yyyy-MM-ddThh:mm:ss')"

2. Click at the first parameter part of the formatdatetime, then choose the corresponding dynamic content, save it,

3. Microsoft Flow won't save successfully, and would notify the error message of validation failed,which then we may find the corresponding part for the input,

4. Copy and paste the corresponding data within the braces @{ } into the function first parameter, then save the flow

Adding screenshots as reference:

68.PNG

69.PNG

70.PNG

Hope this helps,

Regards

Community Support Team _ Michael Shao
If this post helps, then please consider Accept it as the solution to help the other members find it more quickly.

View solution in original post

16 REPLIES 16
Community Support
Community Support

Hi @Mumbrasas,

 

Simply input the column name with the FormatDateTime function from SharePoint online list would not work here.

As the function is used under Microsoft Flow, we should use the Triggers/Actions and the related part from the them to identify the corresponding columns.

For example, here we take use of the When a New Item is created as the Flow trigger, then we need to use the EndTime value from the SharePoint list, we should write the formula under Compose Action as below:

"@formatdatetime(triggerBody()?['EndTime'],'yyyy-MM-ddThh:mm:ss')"

Mostly this is not so easy for end users to handle, so I would share a little tricks to find the content part:

1. Add a Compose Action after the trigger/Action, then specify the Compose input with the following format:

"@formatdatetime( ,'yyyy-MM-ddThh:mm:ss')"

2. Click at the first parameter part of the formatdatetime, then choose the corresponding dynamic content, save it,

3. Microsoft Flow won't save successfully, and would notify the error message of validation failed,which then we may find the corresponding part for the input,

4. Copy and paste the corresponding data within the braces @{ } into the function first parameter, then save the flow

Adding screenshots as reference:

68.PNG

69.PNG

70.PNG

Hope this helps,

Regards

Community Support Team _ Michael Shao
If this post helps, then please consider Accept it as the solution to help the other members find it more quickly.

View solution in original post

It's working. Thank you verry much.

This works for me, however I am only able to use it once. 

 

I have a start and end date on my list, where I add 2 separate "Compose" actions, it ignores the second one. 

 

How can I have both working ?

Not sure if this is your issue, but i renamed my Compose titles to be 'First Day' and 'Last Day' and they then both showed up as individual outputs for selection.

 

Untitled.png 

I cannot get this to work in my flow, i am trying to convert a US date format into an Australian date format with no success using the above fix. Any advice would be greatly appreciated.

 

Keeps emailing me like this, the bold part is my column name in my SharePoint list.

 

Start date: @{formatdatetime(@{triggerBody()?['Leave_x0020_start_x0020_date']},'dd/MM/yyyy')}

As per the instructions above, i think your problem is you need to remove the @{} symbols.  I think you'll find you need your function to look something like this.

 

"@formatdatetime(triggerBody()?['Leave_x0020_start_x0020_date'],'dd/MM/yyyy')"

 

I actually ended up using @addhours so that i could manipulate for DLS.   My code is below

 

"@addHours(triggerBody()?['Start_x0020_Date'],11,'dd/MM/yyyy-HH:mm')"

 

Is there a trigger to make all outputs in formatdatetime in EST? 

Thanks ill give that a try and let you know the outcome.

My Condition 

if(greater(length(actionOutputs('DueDate')),0),formatDateTime(outputs('DueDate'),'yyyy-MM-dd'),''), works perfectly for valid date value, but for empty value it is no working.
The condition above mentioned getting fail if the value is empty 
 
if(equals(empty(actionOutputs('DueDate')),false),formatDateTime(outputs('DueDate'),'yyyy-MM-dd'),''), is also generating the error :
In function 'formatdatetime', the value provided for date time string '' was not valid. The datetime string must match ISO 8601 format.'.
which hould not be the case for False condition.
Please suggect the solution.I am applying substring method to get the date.

My Condition 

if(greater(length(actionOutputs('DueDate')),0),formatDateTime(outputs('DueDate'),'yyyy-MM-dd'),''), works perfectly for valid date value, but for empty value it is no working.
The condition above mentioned getting fail if the value is empty 
 
if(equals(empty(actionOutputs('DueDate')),false),formatDateTime(outputs('DueDate'),'yyyy-MM-dd'),''), is also generating the error :
In function 'formatdatetime', the value provided for date time string '' was not valid. The datetime string must match ISO 8601 format.'.
which should not be the case for False condition.
Please suggect the solution.I am applying substring method to get the date.
Need to pass the null / empty string value to the date.

Gunjan,

I've successfully used the @empty function to only call the @formatDateTime function when the string is not a null.  This may work better than your length-based approach. 

@if(empty(item()['startDateTime']), item()['startDateTime'], formatDateTime(item()['startDateTime'], 'MM/dd/yyyy'))

 

If the item is empty, then it just passes through the empty item.  If the item has a string, then it formats the string. 

 

Yours would be closer to

@if(empty(actionOutputs('DueDate')), actionOutputs('DueDate'), formatDateTime(actionOutputs('DueDate'),'yyyy-MM-dd'))

 

Hope this helps

-TMR

Thank You for your respose , i found this as good solution to the problem...

Anonymous
Not applicable

Hello,

 

Have any way to format output of compose2, for "yyyy-MM-dd" only? In my condition, when i compare this outputs of my composes, that value will be different. Can u help me to solve this problem? 

 

Thx,

Hey @Anonymous 

 

 

Could you please share a screenshot of your Flow and some additional information about this problem you have.

 

Kind regards

 

Tom



If this reply has answered your question or solved your issue, please mark this question as answered.

Answered questions helps users in the future who may have the same issue or question quickly find a resolution via search. If you liked my response, please consider giving it a thumbs up.

Hello,
I have similar issue with the date format in the condition section. I am trying to create a flow which will send an email to the team when the birthdate in the SharePoint list matches todays date. I am using the template from the menu,but the error prevails. I have tried all combinations without desired results.
Appreciate your assistance.
Thank you.

This helped me so much! Thank you! I was looking for this solution, for empty date values. I did just like that, and worked successfuly. 

Helpful resources

Announcements
Community Conference

Power Platform Community Conference

Check out the on demand sessions that are available now!

MPA Community Blog

Power Automate Community Blog

Check out the community blog page where you can find valuable learning material from community and product team members!

Users online (5,417)