이 예제에서는 날짜와 시간을 나타내는 텍스트와 데이터형 간에 변환하는 방법을 보여줍니다.
datetime 데이터형은 특정 시점(예: 2020년 8월 24일, 오전 10시 50분 30초)을 나타내고
duration 데이터형은 시간의 길이(예: 3시간 47분 16초)를 나타냅니다.
날짜와 시간을 텍스트로 변환하는 일반적인 이유는
이를 플롯 레이블이나 파일 이름으로 사용되는 문자열에 추가하기 위해서입니다.
이와 유사하게 날짜와 시간을 텍스트로 저장한 데이터 열이 파일에 있는 경우
그러한 열의 데이터를 datetime형 배열 또는 duration형 배열로 읽어와
데이터를 분석에 더욱 유용하게 만들 수 있습니다.
변환 방법은 다음과 같습니다.
1. datetime형 값 또는 duration형 값을 텍스트로 변환하려면 string 함수를 사용하십시오.
(char 함수를 사용하여 그러한 값을 문자형 벡터로 변환할 수도 있습니다.)
2. 텍스트를 datetime형 값으로 변환하려면 datetime 함수를 사용하십시오.
3. 텍스트를 duration형 값으로 변환하려면 duration 함수를 사용하십시오.
또한 일부 함수의 경우 파일에서 텍스트를 읽어와서 날짜와 시간을 나타내는 텍스트를 datetime형 배열
또는 duration형 배열로 자동으로 변환합니다.
1) datetime형/duration형 값을 텍스트로 변환하기
현재 날짜와 시간을 나타내는 datetime형 값을 만듭니다.
d를 텍스트로 변환하려면 string 함수를 사용합니다.
이와 유사하게 duration형 값을 변환할 수 있습니다.
예를 들어, 먼저 3시간 30분을 나타내는 duration형 값을 만들어 보겠습니다.
이 값을 생성하려면 hours 함수와 minutes 함수를 사용하는 방법이 있습니다.
이러한 함수는 나중에 결합할 수 있는 duration형 값을 만듭니다.
d를 텍스트로 변환합니다.
이러한 문자열은 흔히 플롯 레이블이나 파일 이름에 추가하는 데 사용됩니다.
예를 들어, 오늘의 날짜가 포함된 제목이 있는 간단한 플롯을 만들어 보겠습니다.
먼저 날짜를 변환하고 이를 문자열 myTitle에 추가합니다.
제목이 있는 플롯을 만듭니다.
배열을 string형 배열로 변환하기
datetime형 값 또는 duration형 값으로 구성된 배열을 변환할 수도 있습니다.
string 함수를 사용하여 배열을 변환하면 결과로 생성되는 string형 배열은 크기가 동일합니다.
예를 들어, datetime형 배열을 만들어 보겠습니다.
D를 string형 배열로 변환합니다.
마찬가지로 duration형 배열을 만들어 변환할 수 있습니다.
duration형 배열을 생성하려면 duration 함수를 사용하는 방법이 있습니다.
시간, 분, 초를 지정하는 숫자형 입력값을 사용하여 이 함수를 호출합니다.
duration형 배열을 변환합니다.
출력 텍스트의 형식 지정하기
datetime 데이터형과 duration 데이터형에는 표시 형식을 지정하는 속성이 있습니다.
라이브 스크립트와 명령 창은 이 형식을 사용하여 값을 표시합니다.
string 함수를 사용하여 datetime형 배열 또는 duration형 배열을 변환하는 경우
다른 형식을 지정할 수 있습니다.
예를 들어, datetime형 값을 만들고 표시해 보겠습니다.
월, 일, 년, 시간의 전체 이름에 대한 문자 식별자를 사용하여 형식을 지정합니다.
이 형식을 사용하여 d를 날짜와 시간을 나타내는 string형으로 변환합니다.
마찬가지로, duration형 배열을 변환할 때 형식을 지정할 수 있습니다.
먼저 duration형 값을 생성합니다.
시, 분, 초에 대한 식별자 hh:mm:ss를 사용하여 d를 string형으로 변환합니다.
참고: string 함수는 다른 데이터형을 변환할 경우 형식에 대한 두 번째 입력 인수를 제공하지 않습니다.
출력 텍스트의 locale 지정하기
다른 locale을 사용하여 datetime형 배열 및 duration형 배열을 변환할 수도 있습니다.
locale은 일, 월에 대한 적절한 명칭을 제공합니다.
디폴트 locale이 아닌 다른 locale을 사용하려면 해당 locale을 또 다른 입력 인수로 제공하십시오.
예를 들어, 월에 대한 프랑스어 명칭을 사용하여 현재 날짜와 시간을 나타내기 위해
fr_FR을 locale로 지정해 보겠습니다.
마찬가지로, duration형 배열을 변환할 때 locale을 지정할 수 있습니다.
locale 이 프랑스인 경우 시간에 대해 다른 약어가 사용됩니다.
참고: string 함수는 다른 데이터형을 변환할 때 locale에 대한 세 번째 입력 인수를 제공하지 않습니다.
2) 텍스트를 datetime형 값으로 변환하기
텍스트에서 datetime 함수가 인식하는 형식으로 날짜와 시간이 지정된 경우
텍스트를 datetime형 값으로 변환할 수 있습니다.
날짜와 시간을 나타내는 문자열을 생성합니다.
str을 datetime형 값으로 변환합니다.
입력 텍스트의 형식 해석하기
datetime 함수는 일반적으로 사용되는 많은 텍스트 형식을 인식합니다.
하지만 텍스트가 datetime이 인식하지 못하는 형식으로 된 경우
해당 형식을 입력 인수로 지정할 수 있습니다.
예를 들어, ISO 8601 표준을 사용하여 날짜와 시간을 지정하는 문자열을 만들어 보겠습니다.
datetime 함수는 이 형식을 인식하지 못합니다.
이 문자열을 datetime형 값으로 변환하려면 입력 텍스트의 형식을 지정합니다.
그런 다음 datetime 함수를 호출합니다. 형식에 리터럴 텍스트가 포함된 경우 이를 따옴표로 묶으십시오.
이 예제에서는 리터럴 텍스트 T를 'T'로 지정합니다.
3) 텍스트를 duration형 값으로 변환하기
텍스트에서 duration 함수가 인식하는 형식으로 시간이 지정된 경우
텍스트를 duration형 값으로 변환할 수 있습니다.
시간 길이를 나타내는 문자열을 생성합니다.
str을 duration형 값으로 변환합니다.
입력 텍스트의 형식 해석하기
duration 함수는 일, 시, 분, 초를 콜론( : )으로 구분하여 지정하는 형식을 인식합니다.
예를 들어 다음과 같은 형식입니다.
"dd:hh:mm:ss"
"hh:mm:ss"
"mm:ss"
"hh:mm"
처음 세 개 형식에 소수 초(Fractional Second) 자릿수를 나타내기 위해
최대 9개의 S 문자가 추가된 형식(예: "hh:mm:ss.SSSS")
입력 텍스트가 모호해서 "mm:ss" 형식이나 "hh:mm" 형식과 일치하는 것으로 해석될 가능성이 있는 경우
해당 형식을 입력 인수로 지정하십시오.
예를 들어, 시간 길이를 나타내는 문자열을 생성해 보겠습니다.
이 문자열을 34분 1초라는 기간으로 변환하려면 해당 형식을 지정합니다.
그런 다음 duration 함수를 호출합니다.
4) 파일에서 날짜와 시간 읽어오기
스프레드시트 및 텍스트 파일과 같은 많은 파일에서 날짜/시간을 텍스트로 저장합니다.
날짜와 시간이 인식할 수 있는 형식인 경우 readcell, readvars, readtable 같은 함수는
이들을 읽어와 자동으로 datetime형 배열 또는 duration형 배열로 변환할 수 있습니다.
예를 들어 CSV 파일 outages.csv는 MATLAB과 함께 배포되는 샘플 파일입니다.
이 파일에는 일련의 정전에 대한 데이터가 포함되어 있습니다.
outages.csv의 첫 번째 라인에는 열 이름이 있습니다.
파일의 나머지 부분에는 각 정전에 대한 쉼표로 구분된 데이터 값이 포함되어 있습니다.
이 파일에는 1468줄의 데이터가 있습니다.
여기에는 처음 몇 개 행이 표시되어 있습니다.
outages.csv에서 처음 세 개의 열을 읽어오고 이를 배열에 직접 저장하려면 readvars 함수를 사용합니다.
텍스트를 string형 배열을 저장하는 변수로 읽어오려면 TextType 이름-값 인수를 지정합니다.
하지만 이 함수는 CSV 파일의 두 번째 열에 있는 값을 날짜와 시간으로 인식하고
OutageTime 변수를 datetime형 배열로 생성합니다.
각 출력 배열에서 처음 5개 행을 표시합니다.
전체 스프레드시트를 읽어오고 데이터를 테이블에 저장하려면 readtable 함수를 사용합니다.
텍스트를 string형 배열을 저장하는 테이블 변수로 읽어오려면 TextType 이름-값 인수를 지정합니다.
하지만 readtable은 계속해서 OutageTime 및 RestorationTime을 datetime형 배열을 저장하는
테이블 변수로 변환합니다.
이러한 테이블 변수가 datetime형 배열이므로 이를 사용하여 간편하게 계산을 수행할 수 있습니다.
예를 들어 정전이 지속된 시간을 계산하고 그 값을 테이블에 duration형 배열로 추가할 수 있습니다.