


Comment puis-je convertir avec précision des objets date/heure Java entre les fuseaux horaires ?
Nov 28, 2024 am 11:14 AMConversion de la date/heure vers un fuseau horaire spécifique en Java
Problème :
Conversion d'une date et d'une heure à partir de passer d'un fuseau horaire à un autre peut être difficile en Java. Le code fourni par l'utilisateur pour convertir l'heure actuelle de GMT en GMT 13 semble simple, mais la même approche échoue lors du réglage d'une heure spécifique. L'utilisateur se demande pourquoi le fuseau horaire de la machine locale est utilisé dans de tels cas.
Solution :
La confusion vient du fait que lors de la création d'un nouvel objet Date sans fuseau horaire explicite, l'heure est supposée être en UTC. Cependant, lors de la définition de l'heure sur un objet Calendrier en millisecondes (comme dans calendrier.setTime(new Date(1317816735000L))), l'hypothèse est que l'heure se trouve dans le fuseau horaire de la machine hôte.
Pour pour surmonter ce problème, vous pouvez définir explicitement le fuseau horaire de l'objet SimpleDateFormat avant de formater l'heure :
import java.text.SimpleDateFormat; import java.util.Calendar; import java.util.Date; import java.util.TimeZone; Calendar calendar = Calendar.getInstance(); calendar.setTime(new Date(1317816735000L)); SimpleDateFormat sdf = new SimpleDateFormat("dd MMM yyyy HH:mm:ss z"); // Set the time zone for the formatter sdf.setTimeZone(TimeZone.getTimeZone("GMT+13")); // Format the time with the specified time zone String newZealandTime = sdf.format(calendar.getTime());
Ce code renverra la date dans le fuseau horaire spécifié (GMT 13) sous forme de chaîne.
Étapes pour la conversion date/heure personnalisée :
- Créez un objet Calendrier et définissez l'heure et date.
- Spécifiez le fuseau horaire initial à l'aide de sdf.setTimeZone(TimeZone.getTimeZone("GMT")).
- Formatez l'heure à l'aide de sdf.format(calendar.getTime()).
- Définissez le fuseau horaire souhaité sur l'objet SimpleDateFormat en utilisant sdf.setTimeZone(TimeZone.getTimeZone("GMT 13")).
- Reformatez l'heure en utilisant le nouveau fuseau horaire pour obtenir la valeur convertie.
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!

Article chaud

Outils chauds Tags

Article chaud

Tags d'article chaud

Bloc-notes++7.3.1
Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise
Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1
Puissant environnement de développement intégré PHP

Dreamweaver CS6
Outils de développement Web visuel

SublimeText3 version Mac
Logiciel d'édition de code au niveau de Dieu (SublimeText3)

Sujets chauds

Top 4 frameworks JavaScript en 2025: React, Angular, Vue, Svelte

Comment fonctionne le mécanisme de chargement de classe de Java, y compris différents chargeurs de classe et leurs modèles de délégation?

Comment utiliser Maven ou Gradle pour la gestion avancée de projet Java, la création d'automatisation et la résolution de dépendance?

Node.js 20: Boosts de performances clés et nouvelles fonctionnalités

Iceberg: L'avenir des tables de Data Lake

Comment puis-je utiliser JPA (Java Persistance API) pour la cartographie relationnelle des objets avec des fonctionnalités avancées comme la mise en cache et le chargement paresseux?

Comment implémenter la mise en cache à plusieurs niveaux dans les applications Java à l'aide de bibliothèques comme la caféine ou le cache de goyave?

Spring Boot SnakeyAml 2.0 CVE-2022-1471 Issue fixe
