J'essaie de convertir un horodatage long qui est UTC à l'heure normale de l'Est et je suis totalement perdu. Toutes les astuces seraient géniales!JAVA UTC à EST à partir d'un horodatage UTC long
Merci, R
J'essaie de convertir un horodatage long qui est UTC à l'heure normale de l'Est et je suis totalement perdu. Toutes les astuces seraient géniales!JAVA UTC à EST à partir d'un horodatage UTC long
Merci, R
Essayez ceci:
Date estTime = new Date(utcTime.getTime() + TimeZone.getTimeZone("EST").getRawOffset());
Où utcTime est objet Date de l'heure UTC (si vous avez déjà la valeur à long - il suffit de l'utiliser)
final Calendar c = Calendar.getInstance(TimeZone.getTimeZone("EST"));
c.setTimeInMillis(longTime);
Où longTime
est le nombre de millisecondes depuis l'époque en heure UTC. Vous pouvez ensuite utiliser les méthodes de la classe Calendar pour obtenir les différents composants de la date/heure.
Excellent merci! – rd42
rd42, Pouvez-vous me donner un peu plus de contexte à ce sujet?
Vous dites que vous avez un "horodatage UTC". Est-ce stocké dans une base de données? Est-ce une chaîne?
je pourrais être en mesure de vous fournir plus d'une réponse si vous pouvez donner le contexte que vous essayez de travailler cela dans.
Ok pour des raisons de clarté ce que vous dites est que vous avez une valeur longue qui représente un horodatage en UTC.
Alors dans ce cas, ce que vous allez faire est la suivante.
import java.util.Calendar;
import java.util.TimeZone;
TimeZone utcTZ= TimeZone.getTimeZone("UTC");
Calendar utcCal= Calendar.getInstance(utcTZ);
utcCal.setTimeInMillis(utcAsLongValue);
Votre objet de calendrier est maintenant en UTC.
Pour afficher ce que vous allez vouloir faire quelque chose comme ce qui suit:
import java.text.SimpleDateFormat;
import java.util.Date;
SimpleDateFormat sdf= new SimpleDateFormat("yyyy-MM-dd HH:mm:ss zzz");
sdf.setTimeZone(utcTZ);
Date utcDate= utcCal.getTime();
sdf.formatDate(utcDate);
Cela vous permettra de lire dans un horodatage pour le fuseau horaire UTC stockée en tant que valeur à long et de le convertir à un objet Java Calendar ou Date.
Espérons que vous obtenez où vous devez être.
La variable est de type long avec un horodatage UTC. Essayer de le changer de 1271101959000 à quelque chose de plus amical. – rd42
Je pensais que l'utilisation de la classe Date était déconseillée. –
Wow, génial! Merci beaucoup! – rd42
La création de calendrier peut être assez coûteuse, c'est pourquoi je n'aime pas l'utiliser. Si la performance n'est pas un problème, c'est aussi une option. – duduamar