No time support for same data shown to users in different Time Zones?

I am, for the first time, working on an app where times need to be adjusted for the users Time Zone. For example there is a 3 hour time diff between Eastern Time and Pacific Time. If an Eastern user enters data stamped at 6pm, a Pacific user should see that data with a 3pm time - not the 6pm time.

Does AppSheet not perform this time adjustment automatically when records are written and then read into the app in another Time Zone? All this time I thought it was automatically dealt with but I just did some testing and find that it doesn’t seem so…unless I’m doing something wrong. I have adjusted Time Zone on my desktop and in the Google sheet

The problem is when an Eastern user and a Pacific user both enter data at the same time, those results will appear in views as though the entries were made 3 hours apart.

Am I missing something?

Do I really need to implement something to adjust for Time Zones myself?

I would suggest to use UTCNOW() for writing data into database for all users and create another column (virtual column works) to show their time using USERTZOFFSET() https://support.google.com/appsheet/answer/12266029?hl=en

In your case if you use a bot to trigger a webhook it will not work according to the user timezone. I would recommend using UTCNOW().

Hey Thanks for the reply!

I take it then that you are in agreement that AppSheet DOESN’T automatically handle these Time Zone adjustments and then I need to implement this?

I think this needs to be submitted as a Feature Idea and quickly bubbled up to the top. It makes no sense that each app should implement this when AppSheet can easily handle it for us.

Thank you for bringing USERTZOFFSET() to my attention. I wasn’t aware of it.

@Steve Could you get the USERTZOFFSET() function linked to the UTCNOW() article?

That’s exactly my experience.

Also, as @Steve has recommended, the USERTZOFFSET() function can be clunky to use and it can be more straightforward to simply calculate yourself–e.g., subtract NOW from UTCNOW and then apply that offset to a stored timestamp value that was previously captured using UTCNOW.

In what way is it clunky? Is it is because its minutes instead of hours?

I’ve found no practical use for USERTZOFFSET(); I don’t even know why it exists. As @dbaum mentioned, I recommend using UTCNOW() and NOW() to compute the user’s time zone offset.