So when I choose to use a module I first read the documentation and the first thing I read is “Time zone support is extremely limited, and is often broken.” Then I write my code and it doesn’t work. I tend to look for ways on how I can write my code to make it work. It is NOT “reinventing the wheel” when your wheel is broken.
If you did what the poster is asking then post your code (which I saw you did, nice example) or explain how you did it. It helps no one when you cry about people resorting to writing code when they couldn’t get a module to do what they wanted to.