Hi - i have a flow that is doing an API call to a service, which responds with a unix timestamp. i'm converting the timestamp to UTC using the following formula:
addseconds('1970-1-1',outputs('Compose_2'),'yyyy-MM-dd hh:mm')
which gives predictable results. I want the results to be in EST and to account for DST so i'm using the convert time zone function to go from UTC to EST, and because i'm filling this data into chart labels and want it to be small, i'm using a custom output format based on the microsoft custom output format notes:
however, sometimes the output isn't close to what it should be:
i'm pulling 48 hours worth of data with timestamps, and, after a few, it reports correctly again - i've taken the unix timestamps and converted them to UTC in excel, then to EST and the final column is the output from the convert time zone action:
Unix UTC EST Output
1655992800 6/23/2022 14:00 6/23/2022 10:00 6/22 22
1655996400 6/23/2022 15:00 6/23/2022 11:00 6/22 23
1656000000 6/23/2022 16:00 6/23/2022 12:00 6/23 00
1656003600 6/23/2022 17:00 6/23/2022 13:00 6/23 01
1656007200 6/23/2022 18:00 6/23/2022 14:00 6/23 02
1656010800 6/23/2022 19:00 6/23/2022 15:00 6/23 03
1656014400 6/23/2022 20:00 6/23/2022 16:00 6/23 04
1656018000 6/23/2022 21:00 6/23/2022 17:00 6/23 05
1656021600 6/23/2022 22:00 6/23/2022 18:00 6/23 06
1656025200 6/23/2022 23:00 6/23/2022 19:00 6/23 07
1656028800 6/24/2022 0:00 6/23/2022 20:00 6/24 08
1656032400 6/24/2022 1:00 6/23/2022 21:00 6/23 21
1656036000 6/24/2022 2:00 6/23/2022 22:00 6/23 22
1656039600 6/24/2022 3:00 6/23/2022 23:00 6/23 23
1656043200 6/24/2022 4:00 6/24/2022 0:00 6/24 00
1656046800 6/24/2022 5:00 6/24/2022 1:00 6/24 01
1656050400 6/24/2022 6:00 6/24/2022 2:00 6/24 02
1656054000 6/24/2022 7:00 6/24/2022 3:00 6/24 03
I am really unsure of where to start to figure out why this happens - thoughts?
Solved! Go to Solution.
Hi @Seuadr
Thanks for the clarification! 🙂
I'm using this expression in my flow
addSeconds('1970-01-01T00:00:00Z',<UNIX Timestamp>)
Results:
addSeconds('1970-01-01T00:00:00Z',1655992800) = 6/23/2022 10:00:00 AM ET
addSeconds('1970-01-01T00:00:00Z',1655996400) = 6/23/2022 11:00:00 AM ET
addSeconds('1970-01-01T00:00:00Z',1656000000) = 6/23/2022 12:00:00 PM ET
Here is the flow
I hope this helps!
If this post helps, then please consider accepting it as the solution to help other members find it more quickly! Have a great day!
So i tried the function
convertTimeZone(
As well, thinking maybe it was something with my custom format but with the same results - here is some more detail:
Correct Results:
Incorrect results:
Hi @Seuadr
Here is a previous post that might help:
Solved: Re: Convert Unix Time to Human Readable Time - Power Platform Community (microsoft.com)
which notes to simply, "... take the Unix time, multiply by 1,000 (eg convert from seconds to milliseconds), and use the regular PowerApps formatting functions."
I hope this helps!
If this post helps, then please consider accepting it as the solution to help other members find it more quickly! Have a great day!
@SueB ,
Thanks for the reply!
I guess i should clarify - i'm already converting in the flow from unix to UTC and then from UTC to EST using "Convert_time_zone"
the issue i am running in to is that the output from convert timezone is sometimes wrong.
so for instance below are the following columns - Unix (API response in power automate) --> Conv to UTC (converted using the suggested formula in a compose in power automate) --> Expected EST (what the timestamp SHOULD be) --> Actual output the date and time (in the format M/dd TT for month/day Military time)
Unix Conv to UTC Expected EST Actual Output
1655992800 6/23/2022 14:00 6/23/2022 10:00 6/22 22
1655996400 6/23/2022 15:00 6/23/2022 11:00 6/22 23
1656000000 6/23/2022 16:00 6/23/2022 12:00 6/23 00
so the convert to timezone is outputting 6/22/2022 22:00 instead of 6/23/2022 10:00 when converted in power automate. I get the same results when i convert manually in power automate with a compose action using
convertTimeZone
I'm trying to understand why it would output 6/22/2022 22:00 instead of 6/23/2022 10:00.
thanks,
Jared
Hi @Seuadr
Thanks for the clarification! 🙂
I'm using this expression in my flow
addSeconds('1970-01-01T00:00:00Z',<UNIX Timestamp>)
Results:
addSeconds('1970-01-01T00:00:00Z',1655992800) = 6/23/2022 10:00:00 AM ET
addSeconds('1970-01-01T00:00:00Z',1655996400) = 6/23/2022 11:00:00 AM ET
addSeconds('1970-01-01T00:00:00Z',1656000000) = 6/23/2022 12:00:00 PM ET
Here is the flow
I hope this helps!
If this post helps, then please consider accepting it as the solution to help other members find it more quickly! Have a great day!
Hi @Seuadr
Can you try the below expression if it helps
convertTimeZone(addseconds('1970-1-1', Div(1656014400,1),'yyyy-MM-dd hh:mm:ss'),'UTC','Eastern Standard Time')
or
convertTimeZone(addseconds('1970-1-1', Div(1656014400,1),'yyyy-MM-dd hh:mm:ss'),'UTC','Eastern Time')
Thanks
Please click Accept as Solution on this reply if it helped to solve your issue, and thumbs-up if you feel this is useful or important in other ways as a boost.
Thanks
I've tried both formulas and here are my results (compose 2 is the unix timestamp from the API - it is nested in an apply to each)
Input | Output |
1656324000 | 2022-06-27T06:00:00.0000000 |
1656327600 | 2022-06-27T07:00:00.0000000 |
1656331200 | 2022-06-27T08:00:00.0000000 |
1656334800 | 2022-06-26T21:00:00.0000000 |
1656338400 | 2022-06-26T22:00:00.0000000 |
1656324000:
1656334800:
1656338400:
Interestingly, no problem with the custom time format either:
1656334800:
1656338400:
must lose something in "Translation" doing the conversion in a separate compose?
Hi @Seuadr , please don't use Eastern Time instead use Eastern Standard Time
Thanks
Input | Output |
1656324000 | 2022-06-27T06:00:00.0000000 |
1656327600 | 2022-06-27T07:00:00.0000000 |
1656331200 | 2022-06-27T08:00:00.0000000 |
1656334800 | 2022-06-26T21:00:00.0000000 |
1656338400 | 2022-06-26T22:00:00.0000000 |
when NOT passing the UNIX timestamp into the conversion formula and instead manually inserting it:
Hi @Seuadr 😊
An additional date-time conversion would be one cause of the issue.
Just put the original UNIX timestamp without additional conversions.
addSeconds('1970-01-01T00:00:00Z',<UNIX Timestamp>)
There should be only one step in the flow to convert the UNIX timestamp to your desired date-time format in the selected time zone.
Also, be sure to select the Destination time zone from the dropdown and the flow will handle DST/ST time.
I hope this helps! 🙂
If this post helps, then please consider accepting it as the solution to help other members find it more quickly! Have a great day!
thanks! i had it as a separate compose on the off chance that i might end up doing multiple conversions, but, i guess it doesn't matter either way because i'd still have 2 convert time zone functions so :shrugs: whatever works. 🙂
The first Microsoft-sponsored Power Platform Conference is coming in September. 100+ speakers, 150+ sessions, and what's new and next for Power Platform.
Announcing a new way to share your feedback with the Power Automate Team.
Learn to digitize and optimize business processes and connect all your applications to share data in real time.
User | Count |
---|---|
70 | |
22 | |
18 | |
17 | |
13 |
User | Count |
---|---|
126 | |
37 | |
30 | |
28 | |
26 |