JSP頁面對date時間格式的處理
具體實現很簡單 就兩步走:
引用
<%@ taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt" %>
引用
釋出時間: <fmt:formatDate value="${result.asIssueTime}" type="both"/>
或者看下下面的詳細解說
引用
格式化標籤庫
一、定義:HTTP 協議通過 Accept-Language 請求頭將本地化資訊從瀏覽器傳遞至伺服器。許多 Web 瀏覽器允許使用者定製他們的語言首選項,
那些沒有為一種或多種首選語言環境提供顯式設定的瀏覽器會詢問作業系統以確定在 Accept-Language 頭中傳送哪個值(或哪些值)。
servlet 規範通過 javax.servlet.ServletRequest 類的 getLocale() 和 getLocales() 方法自動地利用 HTTP 協議的這一功能。
JSTL fmt 庫中的定製標記又會利用這些方法來自動地確定使用者的語言環境,從而相應地調整它們的輸出。
但不存在將使用者的時區從瀏覽器傳輸到伺服器的標準 HTTP 請求頭。
總結:jstl fmt庫 就是將本地化資訊從瀏覽器傳遞至伺服器。 內部利用servlet 規範通過 javax.servlet.ServletRequest 類的 getLocale() 和 getLocales()
方法自動地利用 HTTP 協議的這一功能的。
二、組成: ①本地化上下文標記: 設定本地化上下文,其它標記將在其中進行操作。包括:<fmt:setLocale> <fmt:setTimeZone> <fmt:timeZone>
②日期標記: 標記分別支援對日期和數字進行格式化和解析。 包括:<fmt:formatDate> <fmt:parseDate>
③數字標記: 對數字格式化進行解析。 包括:<fmt:formatNumber>
④訊息標記: 側重於對文字訊息進行本地化。 包括:<fmt:message> <fmt:setBundle> <fmt:bundle>
三、例子程式:
程式 ㈠
<%@ page language="java" contentType="text/html; charset=gb2312" import="java.util.*"%>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<%@ taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<title>Insert title here</title>
</head>
<body>
<c:set var="todayValue" value="<%=new Date() %>"/>
中文-大陸:<fmt:setLocale value="zh"/>
<fmt:formatDate value="${todayValue}"/><br>
中文-臺灣<fmt:setLocale value="zh_tw"/>
<fmt:formatDate value="${todayValue}"/><br>
中文-新加坡<fmt:setLocale value="zh_sg"/>
<fmt:formatDate value="${todayValue}"/><br>
英文:<fmt:setLocale value="en"/>
<fmt:formatDate value="${todayValue}"/>
</body>
</html>
頁面輸出:
中文-大陸: 2007-12-25
中文-臺灣 2007/12/25
中文-新加坡 25-十二月-07
英文: Dec 25, 2007
程式㈠解釋:<fmt:setLocale>覆蓋使用者語言環境,JSP 容器處理完該 JSP 程式碼段之後,將忽略使用者瀏覽器設定中所指定的語言首選項。
屬性:value 屬性―――命名屬性環境。<fmt:setLocale value="zh_tw"/>
Scope(可選)――― 用來指定語言環境的作用域。 Page,request, session,application
variant 屬性(也是可選的)允許您進一步針對特定的 Web 瀏覽器平臺或供應商定製語言環境。例如, MAC 和 WIN
<fmt:formatDate>用來格式化和顯示日期和時間(資料 輸出)
屬性:value―――指定要進行格式化和顯示的日期和/或時間資料。
timeZone――(可選)屬性指出將要顯示哪個時區的日期和/或時間。
type ―――-屬性指出要顯示指定的 Date 例項的哪些欄位,應當是 time 、 date 或 both 。該屬性的預設值是 date 。
dateStyle 和 timeStyle 屬性分別指出應當如何格式化日期和時間資訊。有效的樣式有 default 、 short 、 medium 、 long 和 full 。
pattern ―――指定定製樣式,而不必依賴於內建樣式。
var ―――――屬性,那就把包含格式化日期的 String 值指派給指定的變數。
程式(二)
<%@ page language="java" contentType="text/html; charset=gb2312" import="java.util.*"%>
<%@ taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt" %>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<title>bundle test</title>
</head>
<body>
<fmt:bundle basename="dbconn"> 註釋:<fmt:bundle>標籤用於繫結資料來源.properties檔案;<fmt:bundle basename="原始檔名,且不能帶字尾哦,如上例就可以了" prefix="">
資料庫驅動程式名:<fmt:message key="driverName"/><br> 註釋:<fmt::message>標籤用於從指定的資原始檔中把指定的鍵值取出來;
連線字串:<fmt:message key="connString"/><br>
使用者名稱:<fmt:message key="userName"/><br>
密碼:<fmt:message key="password" var="password"/>
<c:out value="${password}"/><br>
名字:<fmt:message key="name"/><br>
動態提示資訊:<fmt:message key="messageTemp"/><br>
</fmt:bundle>
<!-- 修改.properties檔案中某個鍵的動態值 -->
<c:set var="todayTemp" value="<%=new Date() %>"/>
<fmt:setBundle basename="dbconn"/> 註釋:<fmt:setBundle>標籤用於設定預設的資料來源;
動態提示資訊:
<fmt:message key="messageTemp">
<fmt:param>鄧子云</fmt:param> 註釋:<fmt:param>用於傳遞引數
<fmt:param value="${todayTemp}"></fmt:param>
</fmt:message>
</body>
</html>
其對應的讀取檔案為dbconn.properties(當然是放在web-inf/classes下了),內容為:
#SQL Server
driverName=com.microsoft.jdbc.sqlserver.SQLServerDriver
connString=jdbc:microsoft:sqlserver://localhost:1433;DatabaseName=testDatabase
userName=sa
password=123456
name=鄧佳容
messageTemp=myname is {0},today is {1,date}
其頁面輸出為:
資料庫驅動程式名:com.microsoft.jdbc.sqlserver.SQLServerDriver
連線字串:jdbc:microsoft:sqlserver://localhost:1433;DatabaseName=testDatabase
使用者名稱:sa
密碼: 123456
名字:鄧佳容
動態提示資訊:myname is {0},today is {1,date}
動態提示資訊: myname is 鄧子云,today is 2007-12-25
程式(三)
<%@ taglib prefix="c" uri="http://java.sun.com/jstl/core" %>
<%@ taglib prefix="fmt" uri="http://java.sun.com/jstl/fmt" %>
<fmt:parseDate value="${param.date}" var="date" pattern="yyyy/MM/dd:HH:mm:ss>
<fmt:parseDate value="${param.isoDate}" var="isoDate" pattern="yyyyMMdd'T'HHmmss">
Input parameters:
Date: 2004/04/01:13:30:00 Java format: Thu Apr 01 13:30:00 CST 2004
isoDate: 20040531T235959 Java format: Mon May 31 23:59:59 CDT 2004
Dates
Tag Output
Attribute: value; required. Tag has no body. 註釋:value屬性 日期物件
<fmt:formatDate value="${date}" type="both"/>
2004-4-1 13:30:00
<fmt:formatDate value="${isoDate}" type="both"/>
2004-5-31 23:59:59
Attribute: type; optional. Indicates what to print: date, time, or both. 註釋:type屬性(可選)控制列印什麼東東 如:date,time,both(就是兩者都列印)
<fmt:formatDate value="${date}" type="date"/>
2004-4-1
<fmt:formatDate value="${isoDate}" type="time"/>
23:59:59
Attribute: dateStyle; optional. Varies the date format. 註釋:dataStyle屬性(可選)控制日期的格式 default,short,medium,long,full
<fmt:formatDate value="${isoDate}" type="date" dateStyle="default"/>
2004-5-31
<fmt:formatDate value="${isoDate}" type="date" dateStyle="short"/>
04-5-31
<fmt:formatDate value="${isoDate}" type="date" dateStyle="medium"/>
2004-5-31
<fmt:formatDate value="${isoDate}" type="date" dateStyle="long"/>
2004年5月31日
<fmt:formatDate value="${isoDate}" type="date" dateStyle="full"/>
2004年5月31日 星期一
Attribute: timeStyle; optional. Varies the time format. 註釋:timeStyle屬性(可選)控制時間的格式 default,short,medium,long,full
<fmt:formatDate value="${isoDate}" type="time" timeStyle="default"/>
23:59:59
<fmt:formatDate value="${isoDate}" type="time" timeStyle="short"/>
下午11:59
<fmt:formatDate value="${isoDate}" type="time" timeStyle="medium"/>
23:59:59
<fmt:formatDate value="${isoDate}" type="time" timeStyle="long"/>
下午11時59分59秒
<fmt:formatDate value="${isoDate}" type="time" timeStyle="full"/>
下午11時59分59秒 CDT
Attribute: pattern; optional. Inidcates date/time custom patterns. 註釋:pattern屬性(可)控制顯示日期時間的模板
<fmt:formatDate value="${date}" type="both" pattern="EEEE, MMMM d, yyyy HH:mm:ss Z"/>
星期四, 四月 1, 2004 13:30:00 -0600
<fmt:formatDate value="${isoDate}" type="both" pattern="d MMM yy, h:m:s a zzzz/>