This really buries the lede, which is 'Use timestamps'.
For most use cases when a users enter a datetime in the future, they do not care about how many seconds from 1970-01-01 that point is, they care that it occurs at exactly 12:30 on that particular day.
Its amazing how complicated your life can get when reporting across time zones and then mixing that with legal requirements for some reporting.
Also, time zone id and local time is insufficient unless you keep reference tables that can calculate what offset was in effect at the time of the event. Save the trouble and just record it along with the time stamp.