Thank you so much for your help. I’ve never used the SET_TIMEZONE() function but it does the trick perfectly!
But I have a follow-up question. Apparently the value in the source field, the value that TIMESTR() is formatting, is, under the hood, a GMT value. In other words, it’s basically an absolute. Now, your formula formats that absolute value in relative terms – CST in the US. What happens if this base is accessed by another user who is, say, in California (Pacific time zone)?
To put it differently: Why is TIMESTR() adjusting things at all? I’ve got a value in the source field that’s, say, 21:00 in GMT, but I’ve asked Airtable to adjust for the local time zone, so here in Texas I’m seeing 15:00 (GMT-6). If I use a string formula to extract a value from the source timestamp, why doesn’t that time zone adjustment carry over to the string result?
I looked at the list of values that are accepted as parameters or SET_TIMEZONE() and there doesn’t seem to be anything equivalent to “Local Timezone”. Am I just missing it?
The only way to access the “local timezone” is to turn OFF the GMT setting, and then it pulls the local timezone based on your computer’s time zone settings.
I’m not really sure why TIMESTR() is changing the time zone of your source field, if your source field already has its GMT Time Zone setting turned on. On my end, I’m not seeing that behavior. On my end, if my source field is set to GMT, then the TIMESTR() function gives me the exact same time that I see in the source field. You may want to email email@example.com to ask them what’s going on with that.
Also, I created a whole training video & sample base which does a complete deep dive into Time Zones — this might be very beneficial for you, particularly if you’re working with other users in other time zones: