Time is hard. My approach to the problem. Internally, time is always in the UnixTime format, which might be a number of seconds, or if more resolution is needed, it might be in milliseconds, microseconds, or even nanoseconds. Sometimes we may have an integer overflow, so we can go to monotonic time, but first, try UnixTime. And carry it everywhere, and convert it to a human-readable format as close to the user, probably on the frontend side. Try to avoid saving HH, MM, SS and convert them immediately to UnixTime. Still hard, though. For example, scheduling a meeting at 10AM every day - daylight saving - BOOM! - problems.