43 votes

Format de date Java vers format de date JavaScript

J'aimerais pouvoir convertir une chaîne de format de date Java, par ex. jj/MM/aaaa (07/06/2009) à une chaîne de format de date JavaScript, par exemple jj/mm/aa (07/06/2009).

Quelqu'un a-t-il déjà fait cela ou a-t-il une idée de l'endroit où je pourrais trouver un code qui fait déjà cela ?

Editer :

Merci pour toutes les réponses, mais je réalise maintenant mon erreur et peut-être la raison pour laquelle tant d'entre vous ont eu du mal à comprendre la question ; JavaScript n'a pas de capacité intégrée de formatage de date. J'utilise le datepicker de jQuery UI et j'ai réglé son format de date en supposant qu'il appellerait une fonction JS standard à un moment donné, et qu'il n'utiliserait pas sa propre bibliothèque ! Lorsque j'ai fait une recherche sur le formatage des chaînes de caractères, j'ai sauté directement aux tableaux des lettres qui pouvaient être utilisées, sautant la partie au début expliquant comment utiliser le script.

Je travaille sur l'i18n de notre produit et j'ai créé une classe java qui stocke la chaîne de format de date préférée utilisée dans l'application, mon intention était d'avoir la possibilité de fournir à n'importe quel jsps la chaîne de format équivalente en JS.

Merci quand même.

50voto

Ilya Boyandin Points 1147

Si vous avez simplement besoin de passer une date de Java à JavaScript, la meilleure façon de le faire, je pense, serait de convertir la date Java en millisecondes à l'aide de date.getTime() créez une date JavaScript initialisée avec cette valeur en millisecondes avec new Date(milliseconds) puis formater la date à l'aide de l'objet JavaScript Date, comme par exemple : date.toLocaleString() .

6voto

Pablo Cantero Points 2746

Vous pouvez utiliser mon plugin jquery-dateFormat .

// Text
$.format.date("2009-12-18 10:54:50.546", "dd/MM/yyyy");
// HTML Object
$.format.date($("#spanDate").text(), "dd/MM/yyyy");
// Scriptlet
$.format.date("<%=java.util.Date().toString()%>", "dd/MM/yyyy");
// JSON
var obj = ajaxRequest();
$.format.date(obj.date, "dd/MM/yyyy");

3voto

jnt30 Points 878

Une réponse à un sujet similaire a été apportée ici : Conversion de dates en JavaScript

Personnellement, j'ai trouvé cela plutôt pénible et j'ai suivi la suggestion de l'auteur et j'ai utilisé une bibliothèque. Comme indiqué, jQuery datepicker en possède une qui est une solution viable si vous pouvez vous permettre de la télécharger pour votre application ou si vous l'utilisez déjà.

2voto

Hristo Points 12268

Vérifier moment.js ! C'est "Une bibliothèque de date javascript légère pour analyser, manipuler et formater les dates". C'est une petite bibliothèque très puissante.

Voici un exemple...

var today = moment(new Date());
today.format("MMMM D, YYYY h:m A");        // outputs "April 11, 2012 2:32 PM"

// in one line...
moment().format("MMMM D, YYYY h:m A");     // outputs "April 11, 2012 2:32 PM"

Voici un autre exemple...

var a = moment([2012, 2, 12, 15, 25, 50, 125]);
a.format("dddd, MMMM Do YYYY, h:mm:ss a"); // "Monday, March 12th 2012, 3:25:50 pm"
a.format("ddd, hA");                       // "Mon, 3PM"
a.format("D/M/YYYY");                      // "12/3/2012"

Il convient également de mentionner la vérification date.js . Je pense que les deux bibliothèques se complètent.

1voto

JaXoN Points 9

Cette bibliothèque JavaScript devrait pouvoir vous aider.

http://plugins.jquery.com/project/fIsForFormat

(Je ne sais pas pourquoi il s'agit d'un plugin jQuery, car il fonctionne de manière autonome).

Il suffit de diviser la date formatée d'origine en ses différents éléments, puis de créer un nouvel objet Date avec ces éléments. Ensuite, utilisez la méthode "Date.f()" de cette bibliothèque pour produire la date dans le format de votre choix.

Par exemple :

var dateOld = "11/27/2010",
    dateArr = date1.split("/"),
    dateObj = new Date(dateArr[2], dateArr[0], dateArr[1]),
    dateNew = dateObj.f("MMM d, yyyy");

document.write("Old Format: " + dateOld + "<br/>New Format: " + dateNew);

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X