L'utilizzo di un codice di fuso orario non è una buona idea. Fusi orari diversi cambiano l'ora legale in date diverse. Idealmente (IMO) dovresti usare codici Olsen come "Europa/Londra" se le piattaforme pertinenti che stai utilizzando possono farcela. Questi dovrebbero consentirti di prevedere quando si verifica un particolare istante per il fuso orario dell'utente.
Mi dispiace che questo non stia effettivamente aiutando con la funzione che devi scrivere, ma dovrebbe aiutarti a evitare di andare nella direzione sbagliata.
(Parlo per amara esperienza:i fusi orari sono un dolore al collo.)