Calendrier.getTime() ne retourne pas une date UTC si le Fuseau horaire est défini
Je l'ai fait pour mon Calendrier de l'instance à la Date de retour dans le fuseau horaire UTC:
SimpleDateFormat formatter = new SimpleDateFormat("dd-MM-yyyy HH:mm:SS Z");
TimeZone tz = TimeZoneUtil.getTimeZone(StringPool.UTC);
formatter.setTimeZone(tz);
Date dtStart = null;
Date dtEnd = null;
try{
dtStart = formatter.parse(formatter.format(startDate.getTime()));
dtEnd = formatter.parse(formatter.format(endDate.getTime()));
}catch (Exception e) {
e.getStackTrace();
}
Il fonctionne très bien jusqu'à ce que je format calendrier d'horodatage pour renvoyer une chaîne de date requis fuseau horaire mais quand je lis que la chaîne de date de Date de date de, il a de nouveau ramasse fuseau horaire local?
J'ai besoin de stocker la Date de l'objet dans le fuseau horaire UTC.
Toute aide sera très appréciée!
double possible de Comment puis-je obtenir la date actuelle et l'heure UTC ou GMT en Java?
OriginalL'auteur Parkash Kumar | 2013-06-21
Vous devez vous connecter pour publier un commentaire.
Vous pouvez utiliser ceci:
Il va donner:
heure locale: Ven Juin 21 11:55:00 UTC 2013
heure en GMT : 21/06/2013:11:55:00
J'espère que ça aidera.
Acclamations.
OriginalL'auteur Vahe
Date objet en java sera toujours stocker les valeurs dans la machine hôte (votre système) les informations de fuseau horaire.
C'est à partir de javadoc :
Bien que la Date de classe est destinée à refléter le temps universel coordonné (UTC), il ne peut pas le faire exactement, en fonction de l'environnement hôte de la Machine Virtuelle Java.
Vous devez vous essayez d'utiliser Joda Time qui est bien avancé.
OriginalL'auteur Abubakkar
Au lieu de définir le Fuseau horaire dans plusieurs endroits, il est une bonne idée de définir le fuseau horaire à l'aide de -Duser.timezone=GMT ou PST.
Et, vous pouvez facilement tester la façon dont Java traite avec le fuseau horaire et getTime() ignore le fuseau horaire avec un exemple réel:
OriginalL'auteur kisna
La bonne explication de pourquoi la Date objet de la prise de Courant valeur de fuseau horaire ,
veuillez consulter cette DONC réponse
MODIFIER.
ici, je vais ajouter une partie importante de réponses.
java.util.La Date est a pas de moment précis de la zone, bien que sa valeur est le plus souvent considéré par rapport à UTC. Ce qui vous fait penser que c'est dans l'heure locale?
Pour être plus précis: la valeur à l'intérieur d'un java.util.La Date est le nombre de millisecondes écoulées depuis l'époque Unix, qui a eu lieu à minuit le 1er janvier 1970 UTC. À la même époque, peut aussi être décrit dans d'autres fuseaux horaires, mais la traditionnelle description en termes de UTC. Comme c'est un nombre de millisecondes depuis un fixe époque, la valeur à l'intérieur de java.util.La Date est la même partout dans le monde, à tout instant, quel que soit le fuseau horaire local.
OriginalL'auteur dharam