web-dev-qa-db-fra.com

Convertir et formater une date dans JSP

De ma page JSP, je reçois Date dans ce format.

Vendredi 13 mai 2011 19:59:09 GMT 0530 (heure normale de l'Inde) 

Comment puis-je convertir ceci en le modèle yyyy-MM-dd HH:mm:ss?

59
Kiran

Dans JSP, vous voudriez normalement utiliser JSTL<fmt:formatDate> pour cela. Vous pouvez bien sûr également ajouter un scriptlet avec SimpleDateFormat, mais scriptlets sont vivement déconseillés depuis 2003.

En supposant que ${bean.date} retourne Java.util.Date, voici comment vous pouvez l'utiliser:

<%@ taglib prefix="fmt" uri="http://Java.Sun.com/jsp/jstl/fmt" %>
...
<fmt:formatDate value="${bean.date}" pattern="yyyy-MM-dd HH:mm:ss" />

Si vous utilisez réellement un Java.util.Calendar, vous pouvez alors invoquer sa méthode getTime() pour en extraire un Java.util.Date que <fmt:formatDate> accepte:

<fmt:formatDate value="${bean.calendar.time}" pattern="yyyy-MM-dd HH:mm:ss" />

Ou, si vous tenez réellement la date dans un Java.lang.String (cela indique une grave erreur de conception dans le modèle; vous devez vraiment corriger votre modèle pour qu'il stocke les dates en tant que Java.util.Date au lieu de Java.lang.String!), Voici comment convertir une date format de chaîne, par exemple MM/dd/yyyy vers un autre format de chaîne de date, par exemple. yyyy-MM-dd avec l'aide de JSTL <fmt:parseDate> .

<fmt:parseDate pattern="MM/dd/yyyy" value="${bean.dateString}" var="parsedDate" />
<fmt:formatDate value="${parsedDate}" pattern="yyyy-MM-dd" />
237
BalusC
<%@ page language="Java" contentType="text/html; charset=UTF-8"
 pageEncoding="UTF-8"%>
 <!DOCTYPE html>
 <html dir="ltr" lang="en-US">
 <head>
 <meta charset="UTF-8" />
  <title>JSP with the current date</title>
  </head>
 <body>
 <%Java.text.DateFormat df = new Java.text.SimpleDateFormat("dd/MM/yyyy"); %>
<h1>Current Date: <%= df.format(new Java.util.Date()) %> </h1>
</body>
</html>

Sortie: Date actuelle: 10/03/2010

7
phani_yelugula
Date td = new Date();
String b = new String("");
SimpleDateFormat format = new SimpleDateFormat("YYYY/MM/dd");
b = format.format(td);
out.println(b);