개발하다보면 DB의 날짜타입을 timestamp로 저장하는 경우가 있다. 개인적으로 이거 날짜 컨버팅 하고 뭐하고 하는것이 아주 귀찮아서 제일 끔찍하게 싫어하는 데이터 타입인데, 심지어 데이터가 저장되는것도 unix타임이야. 이거 한눈에 들어오겠냐고 제일 싫다.

여튼, 이걸 또 그냥 보면 15뭐시기로 시작하니까 사람이 제대로 읽을 수나 있겠냐, 이거지. 결국에는 사람이 읽고 쓸 수 있는 날짜타입(YYYY-MM-DD HH-MM-SS)으로 변환시켜줘야 하는데 일일히 찾아다가 만드는것도 귀찮고 펑션으로 하나 만들어놨으니까 앞으로 두고두고 좀 써먹어야겠다.


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
//TimeStamp -> Date formatter
function unixToDateFormatter(date) {
  // yyyy-mm-dd hh:mm:ss.s
  var dateFormatt = new Date ( date );
  var year = dateFormatt.getFullYear();
  var month = 0;
  if ( dateFormatt.getUTCMonth() < 9 ){
    month = '0'+ ( dateFormatt.getUTCMonth() + 1 ).toString();
  } else {
    month = dateFormatt.getUTCMonth()+ 1;
  }
  var day = dateFormatt.getUTCDate();
 
  var hour = 0;
  if ( dateFormatt.getHours() < 10 ){
    hour = '0' + (dateFormatt.getHours()).toString();
  } else {
    hour = dateFormatt.getHours();
  }
 
  var minute = 0;
  if ( dateFormatt.getMinutes() < 10 ){
    minute = '0' + ( dateFormatt.getMinutes()).toString();
  } else {
    minute = dateFormatt.getMinutes();
  }
 
  var seconds = 0;
  if ( dateFormatt.getSeconds() < 10 ){
    seconds = '0' + (dateFormatt.getSeconds()).toString();
  } else {
    seconds = dateFormatt.getSeconds();
  }
 
  var milliseconds = dateFormatt.getMilliseconds();
  var fullDateFormatt;
  fullDateFormatt = year +'-'+month+'-'+day+' '+hour+':'+minute+':'+seconds+'.'+milliseconds;
  console.log ("DateFormatt : " + fullDateFormatt);
  return fullDateFormatt;
}
cs


일단 대강 만들긴 했는데, 몇가지 짚고 넘어갈 점이 있다.

getUTCMonth의 경우에는 0~11의 값으로 리턴해준다. 숫자는 뭐다? 0부터 센다. 0은 곧 1월이고, 이말은 리턴되는 값에 + 1을 해줘야 한다는 의미이다. 두번째로는 모든 자릿수를 맞춰줘야 한다는 것이다. 0~11로 리턴해주기 때문에 0은 +1을 해서 1월인데, 우리가 쓰는 데이트 포맷은 YYYY-MM-DD의 값으로 "월"의 자릿수가 맞지 않게 된다. 그런 고로 10월, 즉 리턴되는 값이 9보다 작은 경우에는 앞에 자릿수 '0'을 붙여주게 된다.

자릿수가 안맞는 부분은 month 뿐만 아니라 getUTCDate , getHours, getMinutes , getSeconds의 경우도 마찬가지가 된다. 그래서 각각의 경우에도 10보다 작은 경우에는 앞자리에 0을 붙이는 식으로 구성했다.


이거 하나 만들어놓으면 자바스크립트에서 두고두고 써먹을거고, 자바의 경우에는 simpledateformatter가 있으니까 그냥 이거 갖다 쓰면 된다.

'어장 Develop' 카테고리의 다른 글

[Linux] Centos Alias 설정  (0) 2020.04.11
[Linux] make: g++: Command not found  (0) 2019.08.12
[Intellij] 인텔리제이 - lombok 설치  (0) 2018.09.06
ibatis selectkey 사용  (1) 2018.05.10
리눅스 prerouting 설정방법  (1) 2018.03.15
블로그 이미지

김생선

세상의 모든것을 어장관리

,