SELECT SYSDATE FROM DUAL;
Java에서 위 쿼리의 결과를 NamedParameterJdbcTemplate을 이용하여 java.util.Map<String, Object> 타입으로 반환받으면
SYSDATE 값을 java.sql.Timestamp 타입으로 반환하는데 다시 이 값을 Jackson을 이용하여 JSON 문자열로 변환하면 아래와 같이 13자리 숫자로 반환된다.
{"SYSDATE":1356745844000}
이 숫자의 의미는 1970-01-01 00:00:00을 기준으로 해당 시점까지 초과한 밀리세컨즈를 숫자로 표현한 Timestamp 값이다.
이러한 Timestamp 값을 클라이언트에서 JSON 응답으로 받았을 때 JavaScript 상에서는 아래와 같이 Date 타입으로 인식이 가능하다.
var sysdate = new Date(1356745844000); // Timestamp 값을 가진 Number 타입 값을 Date 타입으로 변환
var sysdate = Date.create(1356745844000); // Sugar를 이용한 Date 타입 변환
Date 타입으로 변환 후 아래와 같이 사람이 식별할 있는 값으로 변환할 수 있다.
sysdate.toLocaleDateString(); // '2012년 12월 29일 토요일' 출력
만약 '2012-12-29'와 같은 형태로 출력하고 싶다면 JavaScript가 제공하는 API가 없기 때문에 파씽 역할을 수행하는 함수를 직접 작성해야 한다.
Moment.js와 같은 JavaScript Date 라이브러리를 이용하면 이런 번거로움을 최소화할 수 있다.
내 경우 JavaScript 범용 라이브러리인 Sugar를 이용하여 아래와 같이 출력해봤다.
sysdate.format('{yyyy}-{MM}-{dd}'); // '2012-12-29' 출력
sysdate.format('{yyyy}-{MM}-{dd} {hh}:{mm}:{ss}'); // '2012-12-29 10:50:44' 출력
Kendo UI Web Grid를 이용하여 날짜 컬럼을 출력시 템플릿을 이용하여 아래와 같이 손쉽게 출력할 수 있다.
$('#someTable').kendoGrid(
{
...
columns : [{
field : 'SYSDATE',
title : '시스템날짜',
template : '#=Date.create(DB_TABLE_FIELD_NAME_11).format("{yyyy}-{MM}-{dd}")#' // 템플릿 설정
}]
});
<참고자료>
http://wiki.fasterxml.com/JacksonFAQDateHandling
http://faildev.blogspot.kr/2012/07/java-date-classes.html
http://joda-time.sourceforge.net/index.html
http://www.kendoui.com/forums/ui/grid/styling-individual-cells-of-grid-with-a-template.aspx#2323031
'Chart 라이브러리 > FLOT차트개발수집자료' 카테고리의 다른 글
Timestamp 변환 (0) | 2014.09.12 |
---|---|
FLOTCHART 그룹 Q/A (0) | 2014.09.12 |
FLOTCHART 거꾸로 나오게 (0) | 2014.09.12 |
모델2에서 timestamp형 변환 질문이요 (0) | 2014.09.12 |
[오라클|Oracle] 시간타입 소수점까지 제어하기 - TO_TIMESTAMP (0) | 2014.09.12 |
Object -> Java.sql.Timestamp or Java.util.Date -> Java.sql.Date (0) | 2014.09.12 |
FLOTCHART 예쁘게 꾸미는 방법 (0) | 2014.09.12 |
[oracle] to_char, to_date (0) | 2014.09.12 |