2011-05-13 2 views
0

Salut J'ai un champ date/heure je veux obtenir IST Convertir en cours PST CURRENT en java ... besoin d'aide ....IST PST en java

ex: maintenant IST son: 13/may/2011 3.32.58pm veulent la même chose dans PST-à-dire 13/may/2011 3.02.58 AM

merci ........

Répondre

9

Si vous êtes intéressé à l'heure actuelle , vous ne devez savoir sur IST du tout. .. juste l'instance actuelle, et la conversion en PST. Vous pouvez le faire avec quelque chose comme:

Date now = new Date(); 
TimeZone zone = TimeZone.getTimeZone("America/Los_Angeles"); // For example... 
DateFormat format = new SimpleDateFormat("..."); // Put your pattern here 
format.setTimeZone(zone); 
String text = format.format(now); 

Personnellement, je vous recommande d'utiliser Joda Time pour toute date/heure de travail au lieu, car il est beaucoup plus agréable API - mais dans ce cas, il est vraiment assez simple, même avec le haut -in API

+0

Ça a marché ... merci .. – Warrior

0

Le Answer by Jon Skeet est correct mais maintenant obsolète avec l'arrivée du code java.time dans Java 8 et versions ultérieures.

java.time

La classe Instant représente un moment sur la ligne de temps en UTC avec une résolution de nanoseconds (jusqu'à neuf (9) chiffres d'une fraction décimale).

Obtenir le moment actuel en UTC.

Instant instant = Instant.now(); 

Ajustez dans un fuseau horaire.

Spécifiez un proper time zone name dans le format de continent/region, tels que America/Montreal, Africa/Casablanca ou Pacific/Auckland. N'utilisez jamais l'abréviation de 3 à 4 lettres telle que EST ou IST car elles sont et non fuseaux horaires, non normalisés, et même pas uniques (!).

ZoneId z = ZoneId.of("America/Los_Angeles"); 
ZonedDateTime zdt = instant.atZone(z); 

Pour générer une chaîne en format standard ISO 8601, appelez le toString. Pour un formatage alternatif, utilisez la classe DateTimeFormatter déjà couverte dans de nombreuses autres questions et réponses.

String output = zdt.format(myDateTimeFormatter); 

Voir le même moment India time, en particulier Asia/Kolkata.

ZoneId zKolkata = ZoneId.of("Asia/Kolkata"); 
ZonedDateTime zdtKolkata = zdt.withZoneSameInstant(zKolkata); 

Je ne sais pas si par IST que vous vouliez dire l'Inde heure normale ou heure normale d'Irlande. Couvrons Europe/Dublin ainsi. Cette zone utilise actuellement un décalage de zéro, +00:00. Donc, c'est wall-clock time dans le même que UTC.

ZoneId zDublin = ZoneId.of("Europe/Dublin"); 
ZonedDateTime zdtDublin = zdt.withZoneSameInstant(zDublin); 

Voir ceci .

instant.toString(): 2017-02-13T07: 28: 57.738Z

zdt.toString(): 2017-02-12T23: 28: 57.738-08: 00 [Amérique/Los_Angeles]

zdtKolkata.toString(): 2017-02-13T12: 58: 57,738 + 05: 30 [Asie/Calcutta]

zdtDublin.toString(): 2017- 02-13T07: 28: 57.738Z [Europe/Dublin]


A propos java.time

Le cadre java.time est construit en Java 8 et versions ultérieures. Ces classes supplantent les vieilles classes de date-heure legacy gênantes telles que java.util.Date, Calendar, & SimpleDateFormat. Le projet Joda-Time, maintenant en maintenance mode, conseille la migration vers les classes java.time.

Pour en savoir plus, voir le Oracle Tutorial. Et recherchez Stack Overflow pour de nombreux exemples et explications. La spécification est JSR 310.

Où obtenir les classes java.time?

  • Java SE 8 et SE 9 et plus tard
    • intégré.
    • Partie de l'API Java standard avec une implémentation groupée.
    • Java 9 ajoute quelques fonctionnalités et corrections mineures.
  • Java SE 6 et SE 7
    • Une grande partie de la fonctionnalité de java.time est de retour à Java 6 Ported .
  • Android

Le projet ThreeTen-Extra java.time étend avec des classes supplémentaires. Ce projet est un terrain d'essai pour d'éventuels ajouts futurs à java.time. Vous pouvez trouver ici des classes utiles telles que Interval, YearWeek, YearQuarter et more.

Questions connexes