Maison > Java > javaDidacticiel > le corps du texte

Comment convertir les horodatages Java en différents fuseaux horaires ?

DDD
Libérer: 2024-11-19 10:52:02
original
200 Les gens l'ont consulté

How to Convert Java Timestamps to Different Time Zones?

Conversion des horodatages Java en différents fuseaux horaires

En Java, les horodatages sont initialement en heure moyenne de Greenwich (GMT) par défaut. Cependant, lorsqu'il s'agit de saisies utilisateur provenant de différents fuseaux horaires, la conversion des horodatages vers le fuseau horaire spécifique d'un utilisateur devient nécessaire.

Considérez ce scénario : un utilisateur à l'heure normale de l'Est (EST) fournit un horodatage de « 5/1 /2008 18h12 (EST)". Le service Web attend l'horodatage en GMT, soit "01/05/2008 18:12 (GMT)".

Pour convertir avec précision les horodatages sur différents fuseaux horaires, un convertisseur personnalisé est nécessaire. Voici le code de convertToGmt() :

public static Calendar convertToGmt(Calendar cal) {

    Date date = cal.getTime();
    TimeZone tz = cal.getTimeZone();

    // Milliseconds since epoch GMT
    long msFromEpochGmt = date.getTime();

    // Current offset from GMT at current date
    int offsetFromUTC = tz.getOffset(msFromEpochGmt);

    // Create a GMT calendar, set time, and add offset
    Calendar gmtCal = Calendar.getInstance(TimeZone.getTimeZone("GMT"));
    gmtCal.setTime(date);
    gmtCal.add(Calendar.MILLISECOND, offsetFromUTC);

    return gmtCal;
}
Copier après la connexion

Cette méthode convertit le calendrier d'entrée en calendrier GMT, garantissant ainsi que l'horodatage est exact en GMT pour le service Web. Notez que cette méthode ne gère actuellement pas les changements d’heure d’été.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal