At work, we simultaneously manage several hours, not just time zones, but also a few more esoteric watches used to navigate a spaceship.
The only thing that really matters is that you agree with ONE AND ONLY ONE HOUR , whichever you choose, and that you have JOINT CONVERSIONS OF THE CLOCK when you need to SEE THE TIME IN THE CLOCK, VARIOUS OF YOUR AND ONLY ONE HOURS .
So:
One and only one time . Choose the simplest option that will help solve your problem, most likely it will be UTC (which some people might not correctly name Greenwich, but the point remains: the zero line).
Appropriate clock conversion . It depends on your application, but you need to ask and answer the following 2 questions: what permission do I need? Do I need to make sure I have a stopwatch? As soon as you answer, you can choose standard libraries or more estoric ones. Again, you should ask these questions.
View time : when someone selects a time (for example, Pacific time), just call the corresponding clock conversion on demand.
Indeed that is.
As for libraries, I use Python for scripting, but the NAIF Spice Library for developing missions and internal code for navigating a spaceship. The difference between them is simply resolution and reliability when taking into account all that you need to consider (Earth rotation, relativity, temporal expansion, seconds of jump, etc.). Of course, you will choose a library that suits your needs.
Good luck.
Edit:
I forgot to mention: do not try to implement your own time management library - use a cutout from a shelf. If you try, you can be successful, but your real project will die, and you will have only one medium library of time to display. Perhaps they exaggerate me, but creating a reliable time library with an end date is far from trivial, i.e. This is the project itself.