I've all but given up on the idea of ever understanding the variety of different approaches that large businesses take in relation to time zones.
Garmin has two options for setting the clock on their watches:
- Auto. Uses GPS data/syncs with your other devices (phone etc) to discern the time.
- Manual. Allows you to manually set the time.
Based on some trial and error I have discerned that if you upload an activity without GPS data Garmin will display the time zone set by yourself within your user preferences.
The same occurs if you manually create an activity in Garmin Connect.
That is fair enough I guess given that there is nothing else to go on.
So with the data Garmin gives to me I can't display the time the activity took place and the time zone in which it took place.
As outlined in my previous post Time zones in software, we seek to "display the timezone on any activity which took place somewhere different to the users 'home' location" .
This is possible using the data that Strava provides, but not possible with the data provided by Garmin.
If you complete an activity with GPS data Garmin will ignore any manually set time on your device and instead discern the time zone based on the GPS data.
I'm not exactly sure why a user would want to 'fake' the time of their activity but it is a little confusing that the time you set on your watch will not match the time displayed on the activity.
Garmin clearly calculate the time zone because it is displayed when you view an activity on Garmin Connect.
When you sync Garmin data to Strava and then pull data from Strava, the time zone is returned in the response. Either Garmin pass time zone identifiers to Strava or Strava discern the time zone themselves.
I could take the latitude/longitude values returned by Garmin and discern the time zones myself but this seems an unnecessary waste of time when Garmin already have the data. It also doesn't help with activities that do not have GPS data associated with them. Users might regularly move around the world, manually updating their time zone setting.
As such, the resolution is for Garmin to improve their API. I have reached out to their support team but I don't hold much hope based on past experiences.