1. 程式人生 > >JSP頁面對date時間格式的處理

JSP頁面對date時間格式的處理

很多時候,資料庫欄位型別為date,放到頁面上顯示時,會出現 2012-04-20 00:00:00.0的情況,就需要對時間進行格式化處理。


具體實現很簡單 就兩步走:
引用
<%@ 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/>

相關推薦

JSP面對date時間格式處理

很多時候,資料庫欄位型別為date,放到頁面上顯示時,會出現 2012-04-20 00:00:00.0的情況,就需要對時間進行格式化處理。具體實現很簡單 就兩步走: 引用 <%@ taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt" %&

Date時間戳轉化成Date時間格式處理

1.問題: 如何把時間戳變成Date格式,或者易讀的String仿時間格式? 2.原始碼: public class Test { public static void main(String[] args) { Simp

Java Date時間格式處理

日期轉字串 /*import java.util.Date*/ Date date = new Date(); SimpleDateFormat simpleDateFormat = new Si

個人常用 JavaScript 時間戳、時間格式處理function

string class ring asc strong str pre 個人 locale 輸出時間 2017/8/9 var myDate = new Date(); myDate.toLocaleDateString();可以獲取當前日期 2017

Date時間格式比較大小

try out 通過 大小 simple pre 相等 exc format 方法一: 兩個Date類型的變量可以通過compareTo方法來比較。此方法的描述是這樣的:如果參數 Date 等於此 Date,則返回值 0;如果此 Date 在 Date 參數之前,則返回小

關於easyui中dategrid的date時間格式轉換問題

使用easyui的時候,難免會遇到後臺傳來date資料,但dategrid中顯示一長串數字的問題,我也是在網上查詢了很長的時間才解決的問題 解決方案: 先在你所定義的列上新增格式轉換的方法,formatter {"title":"bir","field":"bir",width:20

new Date() 日期格式處理

new Date() ;     //引數可以為整數; 也可以為字串; 但格式必須正確   new Date(2018,10,6);       //正確   new Date("2018/10/6");    //正確   new Date("2018-10-6");

java web input type="date"時間處理

java web實現的選擇時間input後內容改變後觸發時間 實現時間的比較 <!DOCTYPE html> <html lang="en"> <head> <

Laravel 時間格式處理

Model protected $fillable=['title','post_at']; protected $dates=['post_at']; //日期格式化 public function setPostAtAttribute($date) { $this->

js裡Date時間格式的常用轉換-------(GMT轉成yyyy-MM-dd)--------(根據日期獲得星期幾)

const DateParse = { /** * 將GMT格式的時間轉為資料庫相容的Date格式 * gmt => GMT格式的時間 * long => 是否長時間(包含時分秒), 可不填(預設值:true), 選填:false * Wed Dec 01 2018

JS Date時間格式的轉換

var mydate = new Date('2012-05-10 10:10:21'); console.log("格式化事件格式1--" + mydate.getTime());//輸出的

SpringMVC 中 jsp 面對 Controller 返回資料的使用

首先看在SpringMVC中利用Controller驗證登陸並返回資料 @RequestMapping("/check") @ResponseBody public Object check(String username, Str

三、在JSP面對LIST物件級聯顯示

<% String path = request.getContextPath(); request.setAttribute("path", path); String provinceJSONString = CommonService.getAllProvinceJSONString(); %&g

PHPExcel 讀取Excel單元格內容為時間格式 處理方法

讀出的時間是天數excel 的日期是從 1900-01-01 開始計算的(php 是從 1970-01-01)兩者間有一個天數差 25569時間是格林威治時間所以有 PHP code ? 1 2 3 $d = 25569; $t = 24 * 60 

new Date()日期格式處理

 專案開發中遇到的格式問題: const strTime="2018-1-1 9:10:10"; const myDate new Date(strTime); const Y = myDate.getFullYear(); const M = myDate.getMont

iOS NSDateFormatter日期時間格式處理的用法

最近在做新浪rss新聞xml解析過程中,遇到一個時間字串轉換的問題。 問題是:Wed, 3 Apr 2013 04:11:02 GMT (這個資料是在xml檔案中獲取的)要在這個字串中截取出04:11:02。   注意:其中的GMT 要特別注意北京時間是GMT+8:00所以

spring mvc json 時間格式處理

從後臺返回json格式的資料,timestamp 型別的資料,在前臺顯示為long型別的, 很是苦惱, 研究了很長時間,下面總結一下: SpringMVC使用@ResponseBody時返回j

spring mvc 返回json 時間格式處理

從後臺返回json格式的資料,timestamp 與datetime 型別的資料,在前臺顯示為long型別的, 很是苦惱, 研究了很長時間,下面總結一下: SpringMVC使用@ResponseBody時返回json的日期格式      前提了解: @Resp

Java Date時間處理-Date工具類

package tag; import java.sql.Timestamp; import java.text.ParseException; import java.text.SimpleDateFormat; import java.util.Calendar; i

C# 常用時間格式處理, 20190510整理

當前 pre mes ole oda line timestamp timespan seconds DateTime.Now.ToString("yyyyMMddHHmmss"); // 20171108204539 DateTime