Използването на код на часовата зона не е добра идея. Различните часови зони променят лятното часово време на различни дати. В идеалния случай (IMO) трябва да използвате кодове на Olsen като "Европа/Лондон", ако съответните платформи, които използвате, могат да се справят с тях. Те трябва да ви позволят да предвидите кога настъпва конкретен момент за часовата зона на потребителя.
Съжалявам, че това всъщност не помага с функцията, която трябва да напишете, но би трябвало да ви помогне да избегнете да вървите в грешната посока.
(Говоря от горчив опит - часовите зони са болка във врата.)