I am specifying enhancements to a system that will need to report on employee activity in different time zones.
I anticipate that users of the system will be able to set a 'Home' or Local Time Zone - and I think that the reports and UI will be most understandable if the user sees the local time of the event, wherever that event happened.
However, I do not want to obscure the fact that some times pertain to a different time zone. Let's just assume for a moment that I want to display a 09:00 start time for employee A in Athens Greece, employee B in London England, and employee C in New York USA, and I am in New York. This example uses offsets relative to New York
A: 09:00 +07:00
B: 09:00 +05:00
C: 09:00
I believe that this solution would be relatively easy to implement using DateTimeOffset types in Sql Server and .Net, but I am uncomfortable about it because it kind-of looks like a ISO8601 format, but it definitely is not that, as the hour offsets are relative to New York, not relative to UTC.
Perhaps instead of using hours offset we could specify a time zone instead:
A: 09:00 [EET]
B: 09:00 [UTC]
C: 09:00
The concern I have with this solution is that DateTimeOffset and such only store an hour-offset, and do not store this time zone information... and it may be non-trivial to discover which actual time zone the event was in later on (consider Daylight Saving Time changes).
Bear in mind employee A might be in Athens one day, and Berlin the next, and so we can not assume on that being fixed, or decide to exclude 'non-home' data from a report.
While I am most interested in the display format others would suggest for this situation; one caveat is that the solution must be fairly easy to implement and quick to process.