안녕하세요, 주아라기입니다.
오늘은 n8n의 날짜 표현식에 대해 좀 더 이야기해보려고 합니다.
이전 글에서 n8n 날짜 표현식의 기본기를 탄탄히 다지셨다면, 이번 고급편에서는 원하는 형식으로 날짜를 변환하고, 비교하고, 유효성을 검사하여 날짜를 좀 더 자유롭게 조작하는 방법을 소개해드리려고 합니다.
≣ 목차
예를 들어, 2024년 12월 25일 을 12/25/2024 형식으로 바꾸고, 오늘과 비교해 며칠이 남았는지 계산하며, 해당 날짜가 유효한지 확인하는 방법을 마스터할 수 있습니다!
혹시 아직 n8n 날짜 표현식이 익숙하지 않으시다면, 이해를 돕기 위해 "n8n 날짜 표현식 기본편"을 먼저 확인해 보는 것을 추천드립니다.
아래 버튼을 클릭하여 기본적인 내용을 먼저 익히세요! 👇
그럼 이제 n8n 날짜 표현식의 고급 기능들을 하나씩 살펴보겠습니다!
날짜 형식
n8n에서는 toISO()와 toFormat() 함수를 사용하여 날짜를 원하는 형식으로 표현할 수 있습니다.
toISO()
toISO() 표현식는 ISO 8601 표준 형식(YYYY-MM-DDTHH:mm:ss.sssZ)으로 날짜를 표현합니다.
// 표현식
{{ $now.toISO() }}
// 표현식 2
{{ $today.toISO() }}
// 표현식 3
{{ DateTime.now().toISO() }}
설정 화면 | 실행 결과 |
|
toFormat()
toFormat() 표현식는 yyyy, MM, dd, HH, mm, ss 등을 조합하여 원하는 형식으로 날짜를 표현할 수 있습니다. (예: yyyy년 MM월 dd일)
// 표현식
{{ $now.toFormat('yyyy년 MM월 dd일') }}
// 표현식 2
{{ $today.toFormat('yyyy년 MM월 dd일') }}
// 표현식 3
{{ DateTime.now().toFormat('yyyy년 MM월 dd일') }}
설정 화면 | 실행 결과 |
|
참고 : toFormat() 표현식는 제 생각에서는 n8n에서 가장 많이 사용하는 날짜 형식 지정 방법이 아닐까 생각합니다.
자주 사용되는 형식 지정 문자
지정 문자 | 설 명 | 예 시 |
yyyy | 4자리 연도 | 2024 |
yy | 2자리 연도 | 24 |
MM | 월 (01 ~ 12) | 09 |
M | 월 (1 ~ 12) | 9 |
dd | 일 (01 ~ 31) | 09 |
d | 일 (1 ~ 31) | 9 |
HH | 시간 (00 ~ 23) | 01 |
hh | 시간 (01 ~ 12) | 01 |
mm | 분 (00 ~ 59) | 06 |
ss | 초 (00 ~ 59) | 45 |
a | 오전/오후 (AM/PM) | AM |
EEEE | 요일 (전체) | Sunday |
EEE | 요일 (짧계 | Sun |
날짜 비교
두 날짜 간의 차이를 계산할 때는 diff() 함수를 사용할 수 있습니다.
diff(otherDateTime, unit) 형태로 사용하며, otherDateTime은 비교할 날짜/시간이고, unit은 차이를 계산할 단위를 의미합니다.
// 표현식
{{ $now.diff(DateTime.fromISO('2024-09-27'), 'days') }}
// 표현식 2
{{ $today.diff(DateTime.fromISO('2024-09-27'), 'days') }}
// 표현식 3
{{ DateTime.now().diff(DateTime.fromISO('2024-09-27'), 'days') }}
설정 화면 | 실행 결과 |
|
일 차이를 숫자로 알고 싶다면, 원하는 기준에 맞춰 속성을 한 번 더 사용해야 합니다. diff() 함수는 두 날짜 간의 차이를 계산하여 Duration 객체로 반환합니다. Duration 객체는. years,. months,. days 등의 속성을 통해 각 단위의 값을 숫자로 추출할 수 있습니다.
일차이 계산
일 수 차이를 숫자로 얻기 위해서는 .days 속성을 사용하세요.
// 표현식
{{ $now.diff(DateTime.fromISO('2024-09-27'), 'days').days }}
// 표현식 2
{{ $today.diff(DateTime.fromISO('2024-09-27'), 'days').days }}
// 표현식 3
{{ DateTime.now().diff(DateTime.fromISO('2024-09-27'), 'days').days }}
이 표현식은 두 날짜 간의 일차이를 숫자로 출력해 줍니다.
참고: days 외에도 years, quarters, months, weeks, hours, minutes, seconds, milliseconds와 같은 단위도 사용할 수 있습니다.
설정 화면 | 실행 결과 |
|
시간 정보를 제외하고 날짜만 비교하고 싶을 때는 now()보다는 today()를 사용하는 것이 더 적합합니다.
잠깐! 혹시 "now()"와 "today()"의 차이가 궁금하신가요? "n8n 날짜 표현식 기본편"에서 자세한 내용을 확인해 보세요! 👇
날짜 생성
n8n에서 날짜로 표현된 문자열을 DateTime 객체로 변환할 때는 fromFormat(), fromISO(), fromObject()를 사용할 수 있습니다.
fromFormat()
fromFormat()은 원하는 형식의 문자열을 DateTime 객체로 변환할 때 사용합니다. 직접 포맷을 지정해 변환할 수 있습니다.
// 표현식
{{ DateTime.fromFormat('2024-12-25', 'yyyy-MM-dd') }}
이 예시는 2024-12-25 형식의 문자열을 DateTime 객체로 변환합니다. 포맷 문자열 "yyyy-MM-dd"는 입력된 날짜의 형식을 나타냅니다.
설정 화면 | 실행 결과 |
|
fromISO()
fromISO()는 ISO 8601 표준 형식의 날짜 문자열을 DateTime 객체로 변환하는 데 사용됩니다. 이 방법은 가장 일반적으로 사용되며, 날짜와 시간 데이터를 ISO 형식으로 저장하고 불러올 때 유용합니다.
// 표현식
{{ DateTime.fromISO('2024-12-25') }}
위 예시는 2024년 12월 25일을 DateTime 객체로 변환합니다.
설정 화면 | 실행 결과 |
|
fromObject()
fromObject()는 객체 형태로 year, month, day 등의 값을 직접 지정하여 DateTime 객체를 생성할 때 사용합니다. 특정 날짜를 명시적으로 지정해야 할 때 유용합니다.
// 표현식
{{ DateTime.fromObject({ year: 2024, month: 12, day: 25 }) }}
// 표현식2
{{ DateTime.fromObject({ year: 2024, month: 12}) }}
// 표현식3
{{ DateTime.fromObject({ year: 2024}) }}
이 예시는 2023년 12월 25일을 DateTime 객체로 생성합니다. month와 day를 생략을 하게 되면 첫 번째 월, 첫번째 일로 자동으로 지정이 됩니다.
설정 화면 | 실행 결과 |
|
날짜 유효성 검사
n8n에서 isValid 표현식은 유효한 날짜 형식인지 확인하는 데 사용됩니다.
// 표현방법
{{ DateTime.fromISO('2024-12-01').isValid}}
// 표현방법2
{{ DateTime.fromISO('2024-13-01').isValid}}
만약 유효한 날짜 형식이라면 true를, 유효하지 않다면 false를 반환합니다.
설정 화면 | 실행 결과 |
|
마무리
이 글에서는 n8n에서 날짜 표현식을 사용하는 다양한 방법을 살펴보았습니다.
$now, $today, DateTime.now()와 같은 기본 변수를 활용하고, toFormat(), diff(), fromISO(), fromFormat(), fromObject() 등의 함수를 통해 날짜를 자유롭게 조작할 수 있었습니다. 또한 isValid 속성을 사용하여 날짜의 유효성도 쉽게 검사할 수 있습니다.
이러한 날짜 표현식을 사용하여 특정 날짜 이후에 작업을 실행하거나, 날짜 형식을 변환하여 데이터를 처리하는 등 다양한 워크플로우를 자동화할 수 있습니다.
더 자세한 정보를 원하신다면 n8n 공식 문서도 확인해 보세요
이제 n8n 날짜 표현식을 마스터하고, 더욱 효율적인 워크플로우 자동화를 만들어 보세요! 😊
혹시 n8n 사용 중 궁금한 점이나 어려움이 있다면 언제든 댓글로 남겨주세요. 함께 문제를 해결하고, 더 나은 자동화를 만들어가도록 노력하겠습니다.
'n8n 이야기' 카테고리의 다른 글
n8n 자동화를 위한 SQL 기본 이해하기 (2) | 2024.12.15 |
---|---|
API란 무엇일까요? 자판기로 쉽게 이해하기 (3) | 2024.12.09 |
n8n 날짜 표현식 마스터하기 : 기본편 (20) | 2024.10.25 |
n8n 표현식 완벽 정복 : 기본 사용 설명 (12) | 2024.10.15 |
n8n 도우미 : 자동화를 위한 유틸리티 노드 활용법 (58) | 2024.10.11 |