Les fuseaux horaires peuvent être l'un des trois types différents dans les objets DateTime :
- Type 1 ; Un décalage UTC, comme dans
new DateTime("17 July 2013 -0300");
- Type 2 ; Une abréviation de fuseau horaire, comme dans
new DateTime("17 July 2013 GMT");
- Type 3 :un identifiant de fuseau horaire, comme dans
new DateTime( "17 July 2013", new DateTimeZone("Europe/London"));
Seuls les objets DateTime avec des fuseaux horaires de type 3 attachés autoriseront l'heure d'été correctement.
Afin de toujours avoir le type 3, vous devrez stocker le fuseau horaire dans votre base de données en tant qu'identifiants acceptés de cette liste et l'appliquer à votre objet DateTime lors de l'instanciation.