Java Language Fuseaux horaires et java.util.Date


Exemple

Un objet java.util.Date n'a pas de concept de fuseau horaire.

  • Il est impossible de définir un fuseau horaire pour une date
  • Il est impossible de modifier le fuseau horaire d'un objet Date
  • Un objet Date créé avec le new Date() constructeur par défaut new Date() sera initialisé avec l'heure actuelle dans le fuseau horaire par défaut du système

Cependant, il est possible d'afficher la date représentée par le moment décrit par l'objet Date dans un fuseau horaire différent en utilisant, par exemple, java.text.SimpleDateFormat :

Date date = new Date();
//print default time zone
System.out.println(TimeZone.getDefault().getDisplayName());
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); //note: time zone not in format!
//print date in the original time zone
System.out.println(sdf.format(date));
//current time in London
sdf.setTimeZone(TimeZone.getTimeZone("Europe/London"));
System.out.println(sdf.format(date));

Sortie:

Central European Time
2016-07-21 22:50:56
2016-07-21 21:50:56