Ils éprouvent de la difficulté à comparer des heures avec des fuseaux horaires différents en Java?

J'ai 2 date objet dans la base de données qui représentent la société des heures de travail.

Je n'ai besoin que les heures mais depuis que j'ai enregistrer la date. il s'affiche comme ceci:

Date companyWorkStartHour; 
Date companyWorkEndHour;

démarrer heures: 12-12-2001-13:00:00
finition heures: 12-12-2001-18:00:00

J'ai le fuseau horaire de l'entreprise et de l'utilisateur. (mon serveur est peut-être dans un autre fuseau horaire).

TimeZone userTimeZone;
TimeZone companyTimeZone;

J'ai besoin de vérifier si l'utilisateur a l'heure actuelle (en tenant compte de son fuseau horaire) est au sein de la société des heures de travail (en tenant compte de la compagnie du fuseau horaire).

Comment puis-je le faire? Je me bats depuis plus d'une semaine avec Java calendrier et sans succès!

Est le fuseau horaire de la bd elle-même déjà pris en considération? Sont les heures correctes lors de l'interroger à partir de la DB comme java.sql.La Date et l'imprimer immédiatement?
La recommandation générale est de stocker tous les temps de l'UTC et de convertir vers et depuis d'autres fuseaux horaires de l'entrée et de la présentation. Ensuite, la comparaison devrait être simple. Date et son remplacement moderne Instant fois l'utilisation de l'UTC à l'interne.

OriginalL'auteur Riki | 2010-05-26