Javascript DateFormat pour différents fuseaux horaires
Je suis un développeur Java et je suis habitué à la classe SimpleDateFormat qui me permet de formater une date dans le format par les paramètres du fuseau horaire.
Date date = new Date();
SimpleDateFormat sdf = new SimpleDateFormat("dd-MM-yyyy hh:mm:ss");
sdf.setTimeZone(TimeZone.getTimeZone("America/Los_Angeles"));
System.out.println(sdf.format(date)); //Prints date in Los Angeles
sdf.setTimeZone(TimeZone.getTimeZone("America/Chicago"));
System.out.println(sdf.format(date)); //Prints same date in Chicago
SimpleDateFormat est une très soigné solution en Java, mais malheureusement je ne trouve pas de solution de rechange similaire en Javascript.
Je suis l'extension de la Date de prototype dans Javascript faire exactement la même chose. J'ai des dates au format Unix, mais je veux les mettre en forme dans différents fuseaux horaires.
Date.prototype.format = function(format, timezone) {
//Now what?
return formattedDate;
}
Je suis à la recherche d'un moyen sympa de faire cela plutôt que d'un hack.
Grâce
source d'informationauteur Elie | 2010-04-10
Vous devez vous connecter pour publier un commentaire.
JavaScript n'a pas de construire un support pour d'autres fuseau horaire à l'autre local. Qu'on ne peut exprimer une date dans l'heure locale ou l'heure UTC. Il n'y a aucun moyen de modifier le décalage de fuseau horaire d'un objet Date.
Ainsi, il n'est pas "propre" façon de résoudre votre problème.
L'ISO format Étendu pour la commune date est AAAA-MM-JJ, et pour l'heure est hh:mm:ss. Les deux formats peuvent être compris sans ambiguïté, dans le monde entier.
Voir aussi:
http://jibbering.com/faq/#dates
Si vous êtes juste de passage de la crue TZ il n'y a rien de vraiment compliqué sur le réglage de la heures.
Mon exemple ci-dessous est bien sûr en abrégé. Le vôtre peut être assez long en fonction du nombre de motifs, vous auriez poignée.
Ne pas écrire votre propre substance; juste obtenir datejs: http://www.datejs.com/
Vous pouvez comprendre ce que le décalage horaire est définie dans l'environnement d'exécution comme ceci:
De tenter de (très légèrement) améliorer mwilcox suggestion:
Vous poser deux questions en une seule, la mise en forme et de fuseau horaire. Ils doivent être abordés séparément. Mise en forme est assez trivial, si aucune des autres réponses vous faire pour que vous devez être plus précis.
Que pour l'heure et du fuseau horaire, si vous avez votre serveur d'injecter de l'UTC, de préférence sous UNIX temps en millisecondes, dans le JavaScript, vous pouvez comparer cela à la fois sur la machine du client, et donc de travailler sur la façon loin de l'UTC est le client. Ensuite, vous pouvez calculer le temps de n'importe quel fuseau horaire vous le souhaitez.
Edit: en fait, je ne savais pas JavaScript avaient également construit dans le temps UTC jusqu'à ce que j'ai vérifié sur internet, soigné.
En tout cas, je suppose que c'est ce que vous voulez:
Vous pouvez ajouter en plus de modèles si vous avez besoin d'.
C'est une vieille question, mais depuis que je l'ai trouvé:
Comme mentionné, il n'y a rien de raisonnable.
Comme pour les libs, il est Moment Fuseau Horaire pour Moment.js.
Ici est un JSfiddle avec un exemple: http://jsfiddle.net/kunycrkb/
Le même code en ligne: