아.. 블로그에 엄청 오랜만에 글쓰네 ㅋㅋ 쓸건 많았는데.
어쨌든 이상한 일이 일어나서 써본다.
내가 하려던건,
1. 어드민 서버 -> API 서버로 호출을 한다.
2. 날짜(Date) 정보를 API 서버로부터 받아온다.
3. Admin의 jsp에 날짜 정보를 뿌린다.
이상한 점은
API에서 등록날짜를 어드민으로 보내줄 때 등록날짜를 Date로 보내줬고,
받는 어드민쪽에서도 Date로 받았는데.
디버깅해보면 값이 잘들어있고
jsp에서 출력하면... 타임스템프값으로 출력된다.
{createdAt=1413339994000} <- 이렇게..
내가 바란건 {createdAt=Web Oct 15 10:20:00 KST 2014} 와 같은 형태였다.
타임스템프(14133339994000 요런것)일 때 날짜를 포맷에 맞춰 출력하기 위해 아래와 같이 사용할 경우 에러가 발생한다.
<fmt:formatDate value="${createdAt}" pattern="yyyy-MM-dd HH:mm:ss" />
해결방법 두가지
1. Admin의 비즈니스 로직에서 API에서 보내준 날짜를 아싸리 long으로 받고,
new Date(타임스템프 값); 을 해서 Date 객체로 완전 변환한 뒤 jsp로 넘긴다.
2. jsp에서 어떻게든 해결한다.
전에도 한번 이런적 있었는데, 1번으로 했더니 이건 정말 아닌것같아서 2번 방법을 찾아봤다.
아래같이 하면 된다.
<jsp:useBean id="dateValue" class="java.util.Date" />
<jsp:setProperty name="dateValue" property="time" value="${createdAt}" />
<fmt:formatDate value="${dateValue}" pattern="yyyy-MM-dd HH:mm:ss" />
원인은 추측해보건데.. 서버투서버 호출만 하면 그러는 것을 봐서는
아마도 date객체더라도 통신할 때 표준으로는 타임스템프로 넘기기 때문에
받은 쪽에서 제대로 변환이 안된 상태이다? 라는 생각.
아시는분 있으면 답변 부탁점요 ㅋㅋㅋ
'개발 > JAVA' 카테고리의 다른 글
구아바(Guava)를 이용하여 List의 특정값 추출해서 새로운 List 만들기 (0) | 2016.03.25 |
---|---|
구아바(Guava) Iterables.filter를 사용해서 리스트 필터링 하기 (0) | 2016.03.25 |
[jUnit] class not found 에러 (0) | 2014.05.15 |
Hash Set - Custom class 중복 제거하기 (0) | 2014.02.16 |
배열에 있는 값을 특정 구분자로 스트링으로 만들기 (0) | 2014.02.09 |