다연이네

[days08] 숫자 및 날짜 포맷팅 처리 태그 (fmt) 본문

JSP

[days08] 숫자 및 날짜 포맷팅 처리 태그 (fmt)

 다연  2021. 1. 5. 20:12
반응형

숫자 출력과 파싱 : fmt:formatNumber, fmt:parseNumber 태그
날짜 출력과 파싱 : fmt:formatDate, fmt:parseDate 태그
시간대 설정 : fmt:setTimeZone,  fmt:timeZone 태그

 

 

<숫자 출력과 파싱>

- fmt:formatNumber

<%@taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<%@taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt" %>


  <%
  int price = 10000;
  String pattern = "#,##0";
  DecimalFormat df = new DecimalFormat(pattern);
  %>
  
  
  price = <%=df.format(price) %><br>
  
  
  <c:set var="price" value="<%=price %>"></c:set>
  <fmt:formatNumber value="${price}" var="priceVar"></fmt:formatNumber>
  <!-- 숫자를 내가 원하는 출력형태로 바꾸겠다 -->
  price = ${priceVar }<br>
  <!-- 자동으로 3자리마다 ,찍음 -->
  
  

  통화: <fmt:formatNumber value="${price}" type="number"></fmt:formatNumber><br>
  <!-- 변수를 안받음 이 자체로 출력하는 작업까지도 됨 --> 
  <!-- type의 기본값 number이고, percent 등 다른 거 넣어도 됨 -->
  
  통화: <fmt:formatNumber value="${price}" type="currency" currencySymbol="\\"></fmt:formatNumber><br>
<!-- 통화단위+3자리마다 콤마 : 바로 위처럼 쓰면 됨 -->



퍼센트 : <fmt:formatNumber value="${price }" type="percent"></fmt:formatNumber> <br>
퍼센트 : <fmt:formatNumber value="${price }" type="percent" groupingUsed="false" ></fmt:formatNumber> <br>
<!-- groupingUsed="false" : 3자리마다 , 안찍음(콤마 단위 기호 표시 여부를 나타내는 속성, 기본은 true) -->



패턴 지정 : <fmt:formatNumber value="${price}" pattern="0000000.00"></fmt:formatNumber>

 

String -> double 형변환

String money = "1,100.12";을 숫자 double 형으로 변환하기

1.

<%
    String money = "1,100.12";
    
    money = money.replaceAll(",", ""); //콤마 제거
%>
     money = <%=Double.parseDouble(money)%> 

2. fmt:parseNumber

<c:set value="1,100.12" var="money"></c:set>
<fmt:parseNumber value="${money}" pattern="0,000.00" var="m"></fmt:parseNumber>
<!-- 패턴을 읽어와 숫자로 바꿔 m이라는 변수에 담겠다 -->
 money=${m}<br>

 

 

<날짜 출력과 파싱>

 

- fmt:formatDate 

<%
   Date now = new Date();
%>

now: <%=now %><br>

<hr>
<c:set value="<%=now %>" var="now"></c:set>
<fmt:formatDate value="${now }"/>
 <fmt:formatDate value="${now }" dateStyle="default"/> <!-- 기본 --><br>
 <fmt:formatDate value="${now }" dateStyle="full"/> <br>
 <fmt:formatDate value="${now }" dateStyle="short"/> <br>
 <fmt:formatDate value="${now }" dateStyle="long"/> <br>
 <fmt:formatDate value="${now }" dateStyle="medium"/> <br>

 <fmt:formatDate value="${now }" type="date"/> <br>
 <fmt:formatDate value="${now }" type="time"/> <br>
 <fmt:formatDate value="${now }" type="both"/> <br>
 
  <hr />
 <fmt:formatDate value="${now }" pattern="yyyy년 MM월 dd일"/> <br>

 

 

 

String -> Date  형변환

String d = "2021년01월05일"; -> Date

 

1.

<%
    String d = "2021년01월05일";
    
    String pattern = "yyyy년MM월dd일";
    SimpleDateFormat sdf = new SimpleDateFormat(pattern);
    Date d2 = sdf.parse(d);

 %>
d2 = <%=d2 %><br>

2.

 <%
    String d = "2021년01월05일";
    String pattern = "yyyy년MM월dd일";
    
    //방법2 (LocalDate : 날짜만 가진 객체로 날짜만 출력)
    DateTimeFormatter formatter = DateTimeFormatter.ofPattern(pattern);
    LocalDate d3 = LocalDate.parse(d,formatter);
 %>

d3 = <%=d3 %><br>

3.  fmt:formatDate 

<%
    String d = "2021년01월05일";
 %>

<fmt:parseDate value="<%=d %>" pattern="yyyy년MM월dd일" var="d4"></fmt:parseDate>
d4 = ${d4 }<br>

 

반응형
Comments