web-dev-qa-db-fra.com

Format de date Java au format de date JavaScript

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

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

Merci d'avance.

Modifier:

Merci pour toutes les réponses mais maintenant je me rends compte de mon erreur et peut-être pourquoi tant d'entre vous ont du mal à comprendre la question; JavaScript n'a pas de capacité de formatage de date intégrée. J'utilise datepicker dans l'interface utilisateur de jQuery et j'ai défini son format de date, en supposant qu'il appellerait une fonction JS standard à un moment donné, sans utiliser sa propre bibliothèque! Quand j'ai cherché sur Google pour formater des chaînes, j'ai sauté directement sur les tables des lettres qui pourraient être utilisées, sautant le début du mot en expliquant comment utiliser le script.

Quoi qu'il en soit, je vais devoir écrire et éventuellement écrire le mien, en convertissant une chaîne de format de date Java en chaîne de format de date jQuery (ou aussi proche que possible). classe qui stocke la chaîne de format de date préférée utilisée dans l’application, mon intention était de pouvoir également fournir à jsps la chaîne de format équivalente à JS.

Merci quand même.

32
Ed .

Si vous avez juste besoin de passer une date de Java à JavaScript, la meilleure façon de le faire serait de convertir la date Java en millisecondes à l'aide de date.getTime(), de créer une date JavaScript initialisée avec cette valeur en millisecondes avec new Date(milliseconds)et ensuite de formater la date. avec le moyen de l'objet JavaScript Date, tel que: date.toLocaleString().

45
Ilya Boyandin

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");
6
Pablo Cantero

Un sujet similaire a été traité ici: Conversion de dates en JavaScript

Personnellement, j’ai trouvé cela très douloureux et j’ai suivi la suggestion de l’auteur et utilisé une bibliothèque. Comme indiqué précédemment, jQuery datepicker en propose une qui est une solution viable si vous pouvez vous permettre le temps de téléchargement nécessaire à votre application ou si vous l'utilisez déjà.

3
jnt30

Départ moment.js ! C'est "Une bibliothèque de dates javascript légère pour analyser, manipuler et formater des 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"

En outre, il convient de mentionner à la caisse date.js . Je pense que les deux bibliothèques se complètent.

1
Hristo

Cela fonctionne bien pour moi:

<%
Date date = Calendar.getInstance().getTime();
%>

<script>
var d = new Date(<%=date.getTime()%>);
alert(d);
</script>
1
Naveed Kamran

Si vous utilisez Java, jetez un coup d'œil au Format de date simple class.

1
Andrew Austin

Je vous suggère le MomentJS with this Plugin qui vous permet de convertir un modèle Java en un modèle JS (MomentJS)

1
André Vinícius

Cette bibliothèque JavaScript devrait pouvoir vous aider. 

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

(Je ne sais pas pourquoi ils l'ont en tant que plugin jQuery, car cela fonctionne de manière autonome.)

Vous diviseriez simplement la date formatée d'origine en ses éléments individuels, puis créeriez un nouvel objet Date avec ces éléments. Ensuite, utilisez la méthode "Date.f ()" de cette bibliothèque pour la sortir 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);
1
JaXoN

Si vous voulez simplement formater les dates, mes extensions de date le feront bien. Il analyse également les formats de données et effectue beaucoup de calculs et de comparaisons de dates:

Bibliothèque DP_DateExtensions

Je ne sais pas si ça va aider, mais je l’ai trouvé très utile dans plusieurs projets.

0
Jim Davis

Le code javascript de cette page implémente certaines fonctions de date et "utilise les mêmes chaînes de format que la classe Java.text.SimpleDateFormat, avec quelques exceptions mineures". Ce n'est pas la même chose que vous voulez, mais ça peut être un bon point de départ.

0
Csaba_H