Конвертировать и отформатировать дату в JSP - PullRequest
61 голосов
/ 28 мая 2011

Со страницы JSP я получаю Date в этом формате.

Пт 13 мая 2011 19:59:09 GMT 0530 (стандартное время Индии)

Как я могу преобразовать это в шаблон yyyy-MM-dd HH:mm:ss?

Ответы [ 7 ]

244 голосов
/ 28 мая 2011

В JSP вы обычно используете для этого JSTL <fmt:formatDate>.Конечно, вы также можете добавить скриптлет с SimpleDateFormat, но скриптлетов настоятельно не рекомендуется с 2003 года.

Предполагая, что ${bean.date} возвращает java.util.Date, вот как вы можете его использовать:

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

Если вы на самом деле используете java.util.Calendar, то вы можете вызвать его метод getTime(), чтобы получить java.util.Date изесли <fmt:formatDate> принимает:

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

Или, если вы на самом деле держите дату в java.lang.String (это указывает на серьезную ошибку проектирования в модели; вы действительно должны исправить свою модель для хранениядаты как java.util.Date вместо java.lang.String!), вот как вы можете конвертировать из одного формата строки даты, например, MM/dd/yyyy в другой формат строки даты, например, yyyy-MM-dd с помощью JSTL <fmt:parseDate>.

<fmt:parseDate pattern="MM/dd/yyyy" value="${bean.dateString}" var="parsedDate" />
<fmt:formatDate value="${parsedDate}" pattern="yyyy-MM-dd" />
7 голосов
/ 01 октября 2012
<%@ 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>

Вывод: текущая дата: 10.03.2010

0 голосов
/ 20 января 2015
<%@page import="java.text.SimpleDateFormat"%>
<%@page import="java.util.Date"%>
<%@page import="java.util.Locale"%>

<html>
<head>
<title>Date Format</title>
</head>
<body>
<%
String stringDate = "Fri May 13 2011 19:59:09 GMT 0530";
Date stringDate1 = new SimpleDateFormat("EEE MMM dd yyyy HH:mm:ss Z", Locale.ENGLISH).parse(stringDate);
String stringDate2 = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(stringDate1);

out.println(stringDate2);
%>
</body>
</html>
0 голосов
/ 07 сентября 2013
Date td = new Date();
String b = new String("");
SimpleDateFormat format = new SimpleDateFormat("YYYY/MM/dd");
b = format.format(td);
out.println(b);           
0 голосов
/ 08 июля 2011

В приведенном выше примере показано, что импорт с ... sun.com/jsp/jstl/format неверен (это означает, что он не работает для меня).

Вместо этого попробуйте следующий оператор импорта:действительный

<%@ taglib uri="http://java.sun.com/jstl/core" prefix="c" %><%@ taglib uri="http://java.sun.com/jstl/core-rt" prefix="c-rt" %><%@ taglib uri="http://java.sun.com/jstl/fmt" prefix="fmt" %>
<html>
  <head>
    <title>Format Date</title>
  </head>

  <body>
    <c-rt:set var="now" value="<%=new java.util.Date()%>" />

    <table border="1" cellpadding="0" cellspacing="0"
    style="border-collapse: collapse" bordercolor="#111111"
    width="63%" id="AutoNumber2">
      <tr>
        <td width="100%" colspan="2" bgcolor="#0000FF">
          <p align="center">
            <b>
              <font color="#FFFFFF" size="4">Formatting: 
              <fmt:formatDate value="${now}" type="both"
              timeStyle="long" dateStyle="long" />
              </font>
            </b>
          </p>
        </td>
      </tr>
0 голосов
/ 28 мая 2011

Вы можете сделать это, используя класс SimpleDateFormat.

SimpleDateFormat formatter=new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");

String dates=formatter.format(mydate);
//mydate is your date object
0 голосов
/ 28 мая 2011

Выезд DateFormatter . Я, вероятно, могу делать то, что вы хотите.

...