본문 바로가기
n8n 이야기

n8n 날짜 표현식 마스터하기 : 고급편

by 주아라기 2024. 10. 27.
반응형
안녕하세요, 주아라기입니다.
오늘은 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 날짜 표현식 마스터하기 : 기본편

    안녕하세요, 주아라기입니다. 오늘은 n8n의 날짜 표현식에 대해 이야기해보려고 합니다.≣ 목차 n8n으로 워크플로우를 자동화하다 보면, 날짜와 시간 데이터를 다루는 것이 정말 중요하죠. "특정

    autotask.kr

     

    n8n 표현식 완벽 정복 : 기본 사용 설명

     

    n8n 표현식 완벽 정복 : 기본 사용 설명

    ≣ 목차  지금까지 n8n의 다양한 노드와 설정 방법을 통해 자동화 워크플로를 만드는 방법에 대해 이야기해 왔습니다. n8n은 강력한 오픈소스 자동화 도구로, 여러 앱과 서비스를 연결하여 효율

    autotask.kr

     

    n8n 도우미 : 자동화를 위한 유틸리티 노드 활용법

     

    n8n 도우미 : 자동화를 위한 유틸리티 노드 활용법

    지금까지 우리는 n8n으로 자동화 워크플로우를 구성하는 데 필요한 다양한 노드들, 즉 트리거 노드, 조건 노드, 데이터 처리 노드, 액션 노드, 그리고 에러 핸들링 노드에 대해 알아보았습니다.

    autotask.kr

     

    반응형