일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- PANDAS
- array
- Google Spreadsheet
- SQL
- numpy
- Excel
- dataframe
- list
- math
- c#
- django
- Mac
- string
- hive
- PostgreSQL
- Google Excel
- Python
- Apache
- Tkinter
- google apps script
- PySpark
- 파이썬
- matplotlib
- GIT
- Kotlin
- Java
- gas
- Github
- Redshift
- Today
- Total
달나라 노트
Google Apps Script : String을 Date로 변경, convert string to date type 본문
Google Apps Script : String을 Date로 변경, convert string to date type
CosmosProject 2022. 11. 21. 22:30
Google Apps Script에서 string을 date type으로 변경하는 방법은 여러 가지가 있습니다.
오늘은 그 중 대표적인 몇가지만 알아봅시다.
1. Date 객체 사용 1
function myFunction() {
var date_string = '2022-12-25';
var date = new Date(date_string);
Logger.log(date);
}
-- Result
Sun Dec 25 09:00:00 GMT+09:00 2022
첫 번째는 Date 객체를 사용하는 것입니다.
- var date_string = '2022-12-25';
위 예시를 보면 먼저 위처럼 2022-12-25라는 날짜 형태로 적힌 텍스트가 있습니다.
이건 YYYY-MM-DD라는 날짜 형태로만 적혀있을 뿐 텍스트입니다. Date type이 아니예요.
- var date = new Date(date_string);
그리고 이렇게 Date 객체 생성 시 date_string을 parameter로 주면 Date 객체는 이를 자동으로 인식해서 2022년 12월 25일의 날짜로 변경해줍니다.
그래서 결과를 보면 2022-12-25 9시로 나온 것을 볼 수 있죠.
9시는 기준시이기 때문입니다.
Date 객체는 주어진 string을 자동으로 인식하기 때문에 시간까지 기준시로 인식해서 나타내줍니다.
Date 객체가 인식할 수 있는 날짜 형태의 string format은 아래 2개가 유일합니다.
YYYY-MM-DD
YYYY-MM-DD HH:mm:ss.sss
이 외의 format은 인식할 수 없습니다.
2. Date 객체 사용 2
이번에도 Date 객체를 사용해보겠지만 좀 다른 방식으로 사용해봅시다.
new Date(year, month, date, hours, minutes, seconds, ms)
Date 객체는 위처럼 총 7개의 인자를 받을 수 있습니다.
각각의 parameter는 적혀진대로 다음을 의미합니다.
year = 년도
month = 월
date = 일
hours = 시
minutes = 분
seconds = 초
ms = 밀리초
function myFunction() {
var new_date = new Date(2022, 11, 25, 19, 15, 38, 634);
Logger.log(new_date);
}
-- Result
Sun Dec 25 19:15:38 GMT+09:00 2022
예를들어 위처럼 적으면 아래와 같은 시간을 만들어줍니다.
year = 2022 (= 2022년)
month = 11 (= 12월) -> javascript에서 1월이 0부터 대응되기에 12월은 11과 대응됩니다.
date = 25 (= 25일)
hours = 19 (= 19시)
minutes = 38 (= 38분)
ms = 634 (= 634밀리초)
결과를 보면 알 수 있죠.
이를 이용해서 2022-12-25라는 string을 date type으로 만들어 보겠습니다.
function myFunction() {
var date_string = '2022-12-25';
var list_date_string = date_string.split('-');
Logger.log(list_date_string);
var date = new Date(list_date_string[0], list_date_string[1]-1, list_date_string[2]);
Logger.log(date);
}
-- Result
[2022, 12, 25]
Wed Jan 25 00:00:00 GMT+09:00 2023
- var list_date_string = date_string.split('-');
위 예시를 보면 split() method를 이용해 2022-12-25라는 string을 기호 - 기준으로 나눠 array로 만듭니다.
따라서 [2022, 12, 25] 이렇게 array가 생성된 것을 볼 수 있습니다.
이렇게 되면 각각은 년, 월, 일을 의미하므로 이걸 Date() 객체에 넣어주기만 하면 됩니다.
- var date = new Date(list_date_string[0], list_date_string[1]-1, list_date_string[2]);
여기서 한 가지 주의할 점은
javascript에서는 1월이 0과 대응됩니다 따라서 12월은 11과 대응되겠죠.
Javascript를 기반으로 한 Google Apps Script도 동일합니다.
따라서 12월을 나타내려면 12가 아니라 11을 전달해주어야하기 때문에 list_date_string[1] - 1을 하는 것에 주의합시다.
Sun Dec 25 00:00:00 GMT+09:00 2022
결과를 보면 날짜가 잘 생성된 것을 알 수 있죠.
여기서는 년, 월, 일을 주어주고 나머지 시, 분 초 정보는 주지 않았기 때문에 자동으로 모두 0으로 입력됩니다.
따라서 2022-12-25 00:00:00 이라는 아주 정확한 시점이 생성된 것을 볼 수 있습니다.
여기서는 날짜를 나눌 때 split을 사용했지만 뭐 사실 상관없습니다.
어떤 방식으로건 날짜 형태의 string을 나누고 년, 월, 일, 시, 분, 초, 밀리초 정보를 Date() 객체의 parameter로 순서에 맞게 넣어주면 됩니다.
function myFunction() {
var date_string = '2022-12-25 19:15:33.992';
var list_date_string = date_string.split(/[-:. ]/);
Logger.log(list_date_string);
var date = new Date(list_date_string[0], list_date_string[1]-1, list_date_string[2], list_date_string[3], list_date_string[4], list_date_string[5], list_date_string[6]);
Logger.log(date);
}
-- Result
[2022, 12, 25, 19, 15, 33, 992]
Sun Dec 25 19:15:33 GMT+09:00 2022
위 예시도 이전과 비슷합니다.
다만 split() method를 사용해서 split을 할 때 separator를 대쉬(-), 콜론(:), 점(.), 공백( ) 4개의 separator를 주어준겁니다.
4개 중 하나라도 발견되면 그것을 separator로 인식해 나누라는 뜻이죠.
그래서 [2022, 12, 25, 19, 15, 33, 992] 이렇게 단위별로 다 나뉜 것을 알 수 있습니다.
그리고 생성된 날짜도
2022년 12월 25일 19시 15분 33초인 것을 알 수 있습니다.