从我的JSP页面,我得到Date
了这种格式。
2011年5月13日星期五19:59:09 GMT 0530(印度标准时间)
如何将其转换为模式yyyy-MM-dd HH:mm:ss
?
Answers:
您可以使用SimpleDateFormat
该类来实现。
SimpleDateFormat formatter=new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
String dates=formatter.format(mydate);
//mydate is your date object
<%@ taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt" %>
<fmt:formatDate value="${bean.date}" pattern="yyyy-MM-dd HH:mm:ss" />
Fri May 13 2011 19:59:09 GMT 0530 (India Standard Time)
是的典型格式Date#toString()
,这意味着他已经java.util.Date
手头有一个对象,该对象不可能来自JSP文件,因为HTTP请求参数始终是java.lang.String
(即使这样,转换String
为则Date
需要Knowlegde SimpleDateFormat
,OP显然没有这样做)没有,否则他根本不会问这个问题)。
在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" />
standard.jar
在运行时类路径中徘徊着JSTL 1.0。摆脱它。
<%@ 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
Date td = new Date();
String b = new String("");
SimpleDateFormat format = new SimpleDateFormat("YYYY/MM/dd");
b = format.format(td);
out.println(b);
上面的示例显示了使用... 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>
/jsp
路径中带有更新的taglib URI是JSTL 1.1在2003年11月左右引入的。我们已经在2011年。弄清楚自己过时了...使自己和图书馆保持最新状态。
<%@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>