hopefully you’re using the offset functionality and not trying to adjust the date/time on each observation. if you’re starting with UTC dates, then i think offsetting during upload is the best approach with the current user interface.
i think the only other approaches would be to use a tool/script to update the EXIF datetimestamp in your image files before upload, or to write a script to offset the datetimes in your observations after upload.
for reference, here’s the thread that describes how the current time zone implementation works in the system: https://forum.inaturalist.org/t/automatic-time-zones/7760.