Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> การเขียนโปรแกรม >> การเขียนโปรแกรม

วิธีใช้ Time Zone ชั่วคราวใน JSP ด้วย JSTL fmt:timeZone


แท็ก <fmt:timeZone> ใช้ระบุ Time Zone ที่จะใช้เฉพาะภายใน body ของแท็กนี้เท่านั้น (ไม่เปลี่ยนค่าเริ่มต้นของหน้า)

แอตทริบิวต์ของ <fmt:timeZone>

แอตทริบิวต์ คำอธิบาย จำเป็น ค่าเริ่มต้น
value Time Zone ที่จะใช้ใน body (เช่น GMT+7, Asia/Bangkok) ใช่ None

ตัวอย่าง: แสดงเวลาปัจจุบันใน Time Zone ทั้งหมด

<%@ taglib uri="https://java.sun.com/jsp/jstl/core" prefix="c" %>
<%@ taglib uri="https://java.sun.com/jsp/jstl/fmt" prefix="fmt" %>
<html>
<head>
<title>JSTL fmt:timeZone Tag</title>
</head>
<body>
<c:set var="now" value="<%=new java.util.Date()%>" />
<table border="1" width="100%">
<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>
<c:forEach var="zone" items="<%= java.util.TimeZone.getAvailableIDs()%>">
    <tr>
        <td width="51%"><c:out value="${zone}" /></td>
        <td width="49%">
            <fmt:timeZone value="${zone}">
                <fmt:formatDate value="${now}" type="both" />
            </fmt:timeZone>
        </td>
    </tr>
</c:forEach>
</table>
</body>
</html>

ผลลัพธ์ตัวอย่าง (บางส่วน)

Formatting: 23 September 2010 15:09:09 GST 

Etc/GMT+1222-Sep-2010 23:09:09
Etc/GMT+1123-Sep-2010 00:09:09

ความแตกต่างจาก fmt:setTimeZone: fmt:timeZone ใช้ได้เฉพาะใน body นั้นๆ fmt:setTimeZone เปลี่ยนค่าเริ่มต้นสำหรับหน้าทั้งหมด (ใน scope นั้น)