在JSP中转换和格式化Date

62 jsp date-format

从我的JSP页面,我得到Date这种格式.

2011年5月13日星期五19:59:09 GMT 0530(印度标准时间)

如何将其转换为模式yyyy-MM-dd HH:mm:ss

Bal*_*usC 250

在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" />
Run Code Online (Sandbox Code Playgroud)

如果您实际使用的是a java.util.Calendar,那么您可以调用其getTime()方法来获取接受java.util.Date它的内容<fmt:formatDate>:

<fmt:formatDate value="${bean.calendar.time}" pattern="yyyy-MM-dd HH:mm:ss" />
Run Code Online (Sandbox Code Playgroud)

或者,如果你实际持有的日期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" />
Run Code Online (Sandbox Code Playgroud)


小智 7

<%@ 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>
Run Code Online (Sandbox Code Playgroud)

输出:当前日期:10/03/2010


Nir*_*oon -12

您可以使用SimpleDateFormat类来做到这一点。

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

String dates=formatter.format(mydate);
//mydate is your date object
Run Code Online (Sandbox Code Playgroud)

  • 我假设投反对票的是 a) 使用 scriptlet 和 b) 甚至不做插入符号/返回格式化日期和 c) 这是可接受的答案,尽管 fmt:formatDate 答案是更好的选择。至少这就是为什么我想投反对票的原因。 (8认同)
  • 在 JSP 中最好使用标签。`&lt;%@ taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt" %&gt;` `&lt;fmt:formatDate value="${bean.date}" pattern=" yyyy-MM-dd HH:mm:ss" /&gt;` (3认同)