본문 바로가기
Tips

Obsidian 옵시디언, 데이터뷰 날짜 형식 바꾸기

by Obsidianary 2022. 3. 5.

Obsidian 옵시디언, 데이터뷰의 날짜 형식 바꾸기

 

목차

  • 들어가며
  • 날짜 표현 자바스크립트 라이브러리 - momentjs
  • 설정을 통해 기본값 자체를 변경하는 방법
  • 코드를 이용해 특정한 컬럼에만 변경하는 방법

들어가며

데이터뷰를 통해서 날짜 형식을 참 많이 씁니다. 날짜가 2022-03-05 말고 요일까지 나오거나, 한국어로 나오거나, 두자리씩 맞춰서 나왔으면 좋을 때가 있습니다.어떻게 바꾸는 지에 대해서 한번 알아봅시다!

 

날짜 표현 자바스크립트 라이브러리 - moment.js

옵시디언은 아시다시피 매우 프로그래밍 친화적입니다. 특히 자바스크립트와 매우 밀접합니다. 자바스크립트 커뮤니티에서 날짜를 처리할 때 가장 많이 사용되는 라이브러리가 momentjs입니다. 데이터뷰에서도 역시 momentjs를 이용해서 날짜를 처리하고 있다고 합니다. 프로그래밍이라고 겁내지 마시고 딱 날짜 표현 방식만 살펴보겠습니다.

 

https://momentjs.com/docs/#/displaying/

 

Moment.js | Docs

moment.relativeTimeThreshold(unit); // getter moment.relativeTimeThreshold(unit, limit); // setter duration.humanize has thresholds which define when a unit is considered a minute, an hour and so on. For example, by default more than 45 seconds is consider

momentjs.com

momentjs 날짜 양식

 

엑셀을 많이 해보셨다면 익숙하실텐데요. 엑셀에서도 셀 서식에서 날짜를 어떻게 보일지 표현할 때 yyyy-MM-dd 라고 되어 있으면 2022-03-05라고 표기가 되는데 momentjs에서도 마찬가지입니다. 위의 표는 조금 더 자세한 표현 방식을 설명할 뿐입니다. 

  • y: 년
  • M: 월
  • d: 일
  • h: 시
  • m: 분
  • s: 초
  • c: 요일

어떻게 이렇게 될까요? (아래 내용은 프로그래밍적인 내용입니다. )

날짜 객체

프로그래밍 언어는 "2022-03-05" 들어왔을 때, 그저 "2022-03-05"라는 텍스트로 받아들이지 않습니다. 따라서 2022-03-05는 날짜(date)라는 객체(날짜 정보를 담은 그릇)이고 각 자리의 역할을 인식합니다. 2022은 년을 뜻하고 03은 월을 뜻하고, 05는 일자를 뜻하는 구나라는 것을 알게됩니다. 이제 2022-03-05는 date(2022,03,05)라고 말할 수 있습니다. 따라서 날짜 정보를 어떻게 표현할 지만 바꾸면 됩니다. 그래서 우리는 어떻게 보여줄 지 위의 momentjs의 날짜 표현 형식에 맞게 지정하면 되는 것입니다.

 

설정을 통해 기본값 자체를 변경하는 방법

데이터뷰 설정을 통해서 보관함 내의 모든 데이터뷰 코드에 적용시킬 수 있습니다.

데이터뷰에서 기본으로 MMMM dd, yyyy로 되어있습니다. 이는 3월 05, 2022로 나타납니다.

이 상태로는 "영미권 사용자들에게는 친숙하지만 우리는 매우 친숙하지 않습니다.


"yyyy년 MM월 dd일" 로 바꾸면 2022년 03월 05일로 나타납니다. 

또는 자연스럽게 하길 원하면 DD도 괜찮습니다.  DD -> 2022년 3월 5일

여기에 요일까지 나오게 하고 싶다면 ccc를 붙여줍니다  DD, cccc -> 2022년 3월 5일, 토요일

 

 

코드를 이용해 특정한 컬럼에만 적용하는 방법

모든 데이터뷰 테이블에서 바꾸고 싶은 게 아니라 특정한 데이터뷰에서만 바꾸고 싶을 때도 있습니다. 데이터뷰 코드에서 원하는 컬럼만 바꿀 수 있습니다. 컬럼을 쓸 때 dateformat(<키>, "<형식>") as "<컬럼명>"함수를 사용하면 됩니다.

 

```dataview
TABLE without id    
    상태
    ,마감일
    ,dateformat(마감일, "yyyy-MM-dd") as "마감일 1"
    ,dateformat(마감일, "yyMMdd") as "마감일 2"
    ,dateformat(마감일, "yyyy/MM/dd (ccc)") as "마감일 3"
FROM #task
WHERE 마감일 != null 
LIMIT 5 
```

dateformat을 이용해서 동일한 날짜더라도 다르게 표현한 것을 확인했습니다.

 

마치며

데이터뷰는 정말 막강합니다. 옵시디언을 사용하면서 날짜를 정말 많이 이용하실텐데 데이터뷰 이용하실 때 날짜 표현 형식을 자유자재로 바꿀 수 있다는 점을 공유하고 싶었습니다. 도움이 되었다면 다행입니다!


한국에서는 옵시디언에 대한 정보가 많이 부족합니다. 부족한 옵시디언에 대한 정보와 사용방법 그리고 꿀팁들을 "Obsidian 옵시디언 사용자 모임" 네이버 카페 "Obsidian 사용자모임" 오픈카톡방에서 소통을 하고 있습니다. 많이 참여해주세요! 😄

 

Obsidian 옵시디언 사용자 모임 : 네이버 카페

Second Brain을 만들기 위한 Obsidian에 관한 정보, 노하우, 꿀팁 등을 공유합니다.

cafe.naver.com

 

Obsidian 사용자 모임

#obsidian #옵시디언 #노션 #RoamResearch #스마트글쓰기 #세컨드브레인 #secondbrain #제텔카스텐

open.kakao.com

 

댓글