JSTL과 EL : fmt 라이브러리(formatDate, formatNumber)

formatting 라이브러리

  • 형식화 = formatting
  • jstl core 라이브러리처럼 사용가능한 formatting라이브러리
  • 시작 전 항상 라이브러리부터 추가
1
2
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<%@ taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt" %>




<fmt:formatDate value=”${}”>

  • fmt에서 가장 많이 사용하는 형태임 (formatDate).

  • 현재 시간정보 출력

    1
    2
    <c:set var="date" value="<%=new Date() %>" /> 
    ${date}<br>
  • 기본 포맷으로 현재 시간정보 출력(default:년월일)

    1
    <fmt:formatDate value="${date }"/><br>
  • 현재 시간정보에서 시간만 출력

    1
    <fmt:formatDate value="${date }" type="time" /><br>
  • 날짜와 시간정보 같이 출력

    1
    <fmt:formatDate value="${date }" type="both" /><br>
  • 날짜 스타일별 출력

    1
    2
    3
    4
    <fmt:formatDate value="${date }" dateStyle="full"/> <br>
    <fmt:formatDate value="${date }" dateStyle="long"/> <br>
    <fmt:formatDate value="${date }" dateStyle="medium"/> <br>
    <fmt:formatDate value="${date }" dateStyle="short"/> <br>

시간 스타일별 출력

1
2
3
4
5
<fmt:formatDate value="${date }" type="time"/> <br>
<fmt:formatDate value="${date }" timeStyle="full" type="time"/> <br>
<fmt:formatDate value="${date }" timeStyle="long" type="time"/> <br>
<fmt:formatDate value="${date }" timeStyle="medium" type="time"/> <br>
<fmt:formatDate value="${date }" timeStyle="short" type="time"/> <br>

가장 많이 사용하는 날짜 시간 포맷으로 출력

- 소문자 mm : 시간의 분을 나타남. 헷갈리지 말것.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
<fmt:formatDate value="${date }" type="both" dateStyle="long" timeStyle="long" /><br>

//2. 날짜 정보를 yyyy/MM/dd(E) 패턴으로 출력 :
//소문자 mm : 시간의 분을 나타남. 헷갈리지말것
<fmt:formatDate value="${date }" pattern="yyyy/MM/dd/(E)"/><br>

//3. yy-MM-dd(E) 패턴으로 출력 :
<fmt:formatDate value="${date }" pattern="yy-MM-dd(E)"/> <br>

//4. 시간정보를 오전오후로 출력
<fmt:formatDate value="${date }" pattern="(a)hh:mm:ss"/> <br>

//출력값
2020년 8월 12일 (수) 오후 5시 03분 59초
2020/08/12/(수)
20-08-12(수)
(오후)05:03:59




나라별 로컬시간대와 로컬화폐단위를 출력 예시

  1. 날짜정보를 포맷팅해서 사용하기 위한 변수생성
  2. core라이브러리와 formatting 라이브러리 추가
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
<!-- core 라이브러리 추가 -->
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<!--3. formatting 라이브러리 추가 -->
<%@ 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=UTF-8">
<title>Insert title here</title>
</head>
<body>
<!-- 형식화(formatting)
1. jstl core 라이브러리처럼 사용가능
2. 날짜정보를 포맷팅해서 사용하기 위한 변수생성
-->
<c:set var="date" value="<%=new Date() %>"/>
<c:out value="${date }"/>
<hr>
<fmt:formatDate value="${date }"/>

<hr>
<h2>우리나라</h2>
<fmt:setLocale value="ko_kr"/>
금액 : <fmt:formatNumber value="100000000000" type="currency"/><br>
날짜 : <fmt:formatDate value="${date }" dateStyle="full"/>

<h2>미국</h2>
<fmt:setLocale value="en_us"/>
금액 : <fmt:formatNumber value="100000000000" type="currency"/><br>
날짜 : <fmt:formatDate value="${date }" dateStyle="full"/>

<h2>일본</h2>
<fmt:setLocale value="ja_jp"/>
금액 : <fmt:formatNumber value="100000000000" type="currency"/><br>
날짜 : <fmt:formatDate value="${date }" dateStyle="full"/>

//출력값
Wed Aug 12 16:09:42 KST 2020
2020. 8. 12
우리나라
금액 : ₩100,000,000,000
날짜 : 2020년 8월 12일 수요일
미국
금액 : $100,000,000,000.00
날짜 : Wednesday, August 12, 2020
일본
금액 : ¥100,000,000,000
날짜 : 2020年8月12日




<fmt:formatNumber value=””>

  • 숫자데이터를 원하는 형태로 출력가능하게 하는 formatting라이브러리
  • 시작 전 항상 라이브러리부터 추가
    1
    2
    <%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
    <%@ taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt" %>




숫자를 3자리마다 콤마를 찍고싶다면

1
2
3
4
5
6
7
8
 <fmt:formatNumber value="100000000" /><br>
<fmt:formatNumber value="100000000" groupingUsed="true"/><br>
<fmt:formatNumber value="100000000" groupingUsed="false"/><br>

//출력값
100,000,000
100,000,000
100000000




소수점자리 표현

  • <fmt:formatNumber value=”” pattern=””>
  • pattern속성 : 숫자는 #으로, 자리수는 .으로 표시
1
2
3
4
5
6
7
8
9
10
11
12
13
<h2> 3.1234643 소수점 두번째 자리 까지만 표현 </h2>
소수점 처리 : <fmt:formatNumber value="3.1234643" /> (기본값) <br>
소수점 처리 : <fmt:formatNumber value="3.1234643" pattern="#.##" /><br>
소수점 처리 : <fmt:formatNumber value="3.1234643" pattern="#.#######" /><br>
소수점 처리 : <fmt:formatNumber value="3.1234643" pattern="#.##########" /><br>
소수점 처리 : <fmt:formatNumber value="3.1234643" pattern="####.#" /><br>

//출력값
소수점 처리 : 3.123 (기본값)
소수점 처리 : 3.12
소수점 처리 : 3.1234643
소수점 처리 : 3.1234643
소수점 처리 : 3.1




빈자리수는 0을 채워서 표현

  • <fmt:formatNumber value=”” pattern=”##.00”>
1
2
3
4
5
6
7
8
9
10
11
12
<fmt:formatNumber value="30.1" pattern="##.##"/><br>
<fmt:formatNumber value="30.1" pattern="##.00"/><br>
<fmt:formatNumber value="30.1" pattern="00.00"/><br>
<fmt:formatNumber value="30.1" pattern="00.77"/><br>
<fmt:formatNumber value="30.1" pattern="#00.00"/><br>

//출력값
30.1
30.10
30.10
30.77
30.10




퍼센트

1
2
3
4
5
6
백분율 : <fmt:formatNumber value="0.55"  /><br>
백분율 : <fmt:formatNumber value="0.55" type="percent" /><br>

//출력값
백분율 : 0.55
백분율 : 55%




통화량

  • currencySymbol속성 : 원하는 문자를 넣어서 통화표현도 할 수 있음
1
2
3
4
5
6
7
8
9
10
통화량 : <fmt:formatNumber value="2000000000"  /><br>
통화량 : <fmt:formatNumber value="2000000000" type="currency" /><br>
통화량 : <fmt:formatNumber value="2000000000" type="currency" currencySymbol="$" /><br>
통화량 : <fmt:formatNumber value="2000000000" type="currency" currencySymbol="*" /><br>

//출력값
통화량 : 2,000,000,000
통화량 : ₩2,000,000,000
통화량 : $2,000,000,000
통화량 : *2,000,000,000

Comments