在JSP中转换和格式化date
从我的JSP页面,我得到这种格式的Date
。
2011年5月13日星期五19:59:09 GMT 0530(印度标准时间)
我怎样才能将其转换为模式yyyy-MM-dd HH:mm:ss
?
你可以使用SimpleDateFormat
类来做到这一点。
SimpleDateFormat formatter=new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); String dates=formatter.format(mydate); //mydate is your date object
在JSP中,您通常喜欢使用JSTL <fmt:formatDate>
。 你当然也可以使用SimpleDateFormat
一个scriptlet ,但是从2003年开始, scriptlet就被强烈地拒绝了 。
假设${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()
方法来获取<fmt:formatDate>
接受的java.util.Date
。
<fmt:formatDate value="${bean.calendar.time}" pattern="yyyy-MM-dd HH:mm:ss" />
或者,如果实际上在java.lang.String
保存date(这表示模型中存在严重的devise错误;您应该修复模型以将date存储为java.util.Date
而不是java.lang.String
!),这里是如何从一个datestring格式,例如MM/dd/yyyy
为另一个datestring格式,例如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" />
<%@ 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>
输出:当前date:10/03/2010
Date td = new Date(); String b = new String(""); SimpleDateFormat format = new SimpleDateFormat("YYYY/MM/dd"); b = format.format(td); out.println(b);
签出DateFormatter 。 我可能可以做你想做的。
上面的示例显示导入与… 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>
<%@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>