스프레드시트 구글 앱 스크립트 날짜 포맷 변경하기 [19]

Google Apps Script

1. 서론

안녕하세요, 지난 글에서는 스프레드시트에서 구글 앱 스크립트의 함수 중 하나인 TextFinder 함수의 기능을 알아보았습니다. 이번 글에서는 스프레드시트에서 구글 앱 스크립트로 날짜 포맷을 변경하는 법을 해보도록 하겠습니다.

혹시나 지난 포스팅을 못 보신 분들은 아래 링크를 클릭해 주세요.

2. 날짜 포맷 변경하기

보통 날짜를 표현하는 포맷은 ‘2024년 1월 4일’ 또는 ‘2024-01-04’ 등 여러가지가 있습니다.

해당 포맷을 원하는 방식으로 바꾸는 법을 구글 앱 스크립트를 이용해 해보도록 하겠습니다.

날짜 포맷을 변경하는 함수는 Utilities 클래스 안에 있습니다.

아래 예제를 통해 사용하는 법을 알아보도록 하겠습니다.

function dateformat() {
  const activeSpreadSheet = SpreadsheetApp.getActiveSpreadsheet();
  const activeSheet = activeSpreadSheet.getActiveSheet();
  
  const today = Utilities.formatDate(new Date(), "GMT+9", "yyyyMMdd");

  activeSheet.getRange('A1').setValue(today);
}

우선 formatDate()함수가 포맷을 설정하는 함수인데요.

첫 번째 인자는 날짜 Date클래스, 두 번째 인자는 타임존, 세 번째 인자가 포맷형식입니다.

위 예제 스크립트를 실행한다면 A1셀에 당일 날짜가 입력될텐데요.

만약 당일 날짜가 2024년 1월 4일이라면 ‘20240104’로 입력이 됩니다.

이 외에도 원하는 방식으로 아무렇게나 포맷 형식을 지정할 수 있습니다.

Utilities.formatDate(new Date(), "GMT+9", "yyyyMMdd HH:mm:ss");

위 스크립트는 시, 분, 초까지 입력이 됩니다.

Utilities.formatDate(new Date(), "GMT+9", "yyyy-MM-dd HH:mm:ss");

위 스크립트는 ‘2024-01-04 19:50:40’와 같이 입력이 됩니다.

그렇다면 현재 시간이 아닌 특정 시간을 입력하려면 어떻게 할까요?

// 직접 입력
Utilities.formatDate(new Date('2024-02-01 10:05:40'), "GMT+9", "yyyy-MM-dd HH:mm:ss");

// 인수로 입력
Utilities.formatDate(new Date(2024, 1, 1, 10, 5, 40), "GMT+9", "yyyy-MM-dd HH:mm:ss");

// unix timestamp로 입력
Utilities.formatDate(new Date(1704366176000), "GMT+9", "yyyy-MM-dd HH:mm:ss");

특정 시간을 직접 넣거나 인자로 연, 월 인덱스, 일을 넣거나 unix timestamp 값으로 설정할 수 있습니다.

여기서 인수로 넣을 때 두 번째 인자 부분은 월 자체를 넣는게 아닌 인덱스로 넣습니다.

따라서 예제에서 2024년 1월 1일이 아닌 2024년 2월 1일로 나옵니다. 2024, 0, 1로 넣으면 1월 1일로 나옵니다.

3. 마무리

여기까지 간단하게 스프레드시트에서 구글 앱 스크립트로 날짜 포맷을 변경하는 법을 알아보았습니다.

혹시나 구글 앱 스크립트에 대해 궁금하신 점이나 알고 싶으신 기능이 있으신 분은 직접 댓글로 질문해 주시면 해당 질문을 토대로 포스팅을 써보겠습니다.

Comments

답글 남기기

이메일 주소는 공개되지 않습니다. 필수 필드는 *로 표시됩니다