Main Content

이 페이지의 최신 내용은 아직 번역되지 않았습니다. 최신 내용은 영문으로 볼 수 있습니다.

datetime형 배열, 숫자, 텍스트 간 변환하기

개요

datetime형은 특정 시간을 나타내는 데 가장 적합한 데이터형입니다. datetime형 값은 유연한 표시 형식을 사용하고 최대 나노초 정밀도까지 지원하며 표준 시간대, 일광 절약 시간제, 윤초(Leap Second)를 고려할 수 있습니다. 그러나, MATLAB® R2014a 이하 버전에서 작성된 코드로 작업하거나 이러한 버전을 사용하는 다른 사람과 코드를 공유하는 경우, 다음 세 개의 형식 중 하나에 저장되는 날짜/시간으로 작업해야 할 수도 있습니다.

  • 날짜 문자열 — 문자형 벡터입니다.

    Example:  Thursday, August 23, 2012  9:45:44.946 AM
  • 날짜 벡터 — 연, 월, 일, 시, 분, 초를 포함하는 1x6 숫자형 벡터입니다.

    Example:  [2012   8    23    9    45    44.946]
    
  • 날짜 일련 번호 값 — 역산 ISO 달력의 0000년 1월 0일 이후의 일수와 일치하는 단일 숫자 값입니다(그레고리력을 사용하도록 지정). 날짜 일련 번호 값은 datetime 데이터형이나 duration 데이터형을 허용하지 않는 일부 MATLAB 함수에 대한 입력값으로 유용합니다.

    Example:  7.3510e+005

날짜 문자열, 벡터 및 숫자는 값으로 구성된 배열로 저장될 수 있습니다. 여러 날짜 문자열은 문자형 벡터로 구성된 하나의 셀형 배열에 저장되고, 여러 날짜 벡터는 mx6 행렬에 저장되고, 여러 날짜 일련 번호 값은 하나의 행렬에 저장됩니다.

이러한 형식은 datetime 함수를 사용하여 datetime형 배열로 변환할 수 있습니다. 기존 MATLAB 코드에 날짜 일련 번호 값이나 날짜 벡터가 필요한 경우 datenum 함수 또는 datevec 함수를 각각 사용하여 datetime형 배열을 필요한 날짜 형식으로 변환합니다. datetime형 배열을 문자형 벡터로 변환하려면 char 함수나 cellstr 함수를 사용하십시오.

R2016b부터는 string 함수를 사용하여 datetime형 배열을 string형 배열로 변환할 수도 있습니다.

datetime형 벡터와 문자형 벡터 간 변환하기

날짜 문자열은 특정 날짜 및/또는 시간과 관련된 필드로 구성된 문자형 벡터일 수 있습니다. 텍스트 형식으로 날짜/시간을 나타내는 방법은 여러 가지가 있습니다. 예를 들어, 다음 항목은 모두 2010년 8월 23일 오후 04:35:42를 나타내는 문자형 벡터입니다.

'23-Aug-2010 04:35:06 PM'
'Wednesday, August 23'
'08/23/10 16:35'
'Aug 23 16:35:42.946'

날짜 문자열에는 여기에 사용된 하이픈, 공백, 콜론과 같이 필드를 구분하는 문자가 포함되어 있습니다.

d = '23-Aug-2010 16:35:42'	

datetime 함수를 사용하여 하나 이상의 날짜 문자열을 datetime형 배열로 변환합니다. 최상의 성능을 구현하려면 datetime에 대한 입력값으로 입력 날짜 문자열의 형식을 지정하십시오.

참고

datetime이 날짜/시간 형식을 설명하는 데 사용하는 지정자는 datestr, datevec, datenum 함수가 받는 지정자와 다릅니다.

날짜/시간 형식 지정자의 전체 목록은 datetime 데이터형의 Format 속성을 참조하십시오.

t = datetime(d,'InputFormat','dd-MMM-yyyy HH:mm:ss')
t = 

  datetime

   23-Aug-2010 16:35:42

날짜 문자열 ddatetime형 스칼라 t는 유사하게 보이지만, 완전히 같지는 않습니다. 각 변수의 크기와 데이터형을 보겠습니다.

whos d t
  Name      Size            Bytes  Class       Attributes

  d         1x20               40  char                  
  t         1x1                17  datetime              

char 또는 cellstr을 사용하여 datetime형 배열을 문자형 벡터로 변환합니다. 예를 들어, 현재 날짜/시간을 파일 이름에 추가할 타임스탬프로 변환합니다.

t = datetime('now','Format','yyyy-MM-dd''T''HHmmss')
t = 

  datetime

   2017-01-03T151105
S = char(t);
filename = ['myTest_',S]
filename =

    'myTest_2017-01-03T151105'

datetime형 배열과 string형 배열 간 변환하기

R2016b부터는 string 함수를 사용하여 string형 배열을 생성할 수 있습니다. string형 배열에 날짜 문자열이 있는 경우 datetime 함수를 사용하여 string형 배열을 datetime형 배열로 변환할 수 있습니다. 마찬가지로, string 함수를 사용하여 datetime형 배열을 string형 배열로 변환할 수 있습니다.

string형 배열을 변환합니다. MATLAB은 큰따옴표 사이에 string형을 표시합니다. 최상의 성능을 구현하려면 datetime에 대한 입력값으로 입력 날짜 문자열의 형식을 지정하십시오.

str = string({'24-Oct-2016 11:58:17';
              '19-Nov-2016 09:36:29';
              '12-Dec-2016 10:09:06'})
str = 

  3×1 string array

    "24-Oct-2016 11:58:17"
    "19-Nov-2016 09:36:29"
    "12-Dec-2016 10:09:06"
t = datetime(str,'InputFormat','dd-MMM-yyyy HH:mm:ss')
t = 

  3×1 datetime array

   24-Oct-2016 11:58:17
   19-Nov-2016 09:36:29
   12-Dec-2016 10:09:06

datetime형 값을 string형으로 변환합니다.

t = datetime('25-Dec-2016 06:12:34');
str = string(t)
str = 

     "25-Dec-2016 06:12:34"

datetime형 벡터와 날짜 벡터 간 변환하기

날짜 벡터는 배정밀도 숫자로 구성된 1x6 벡터입니다. 날짜 벡터의 요소는 소수일 수 있는 초 요소를 제외하고는 정수 값입니다. 시간 값은 24시간 표기법으로 표현됩니다. 오전 또는 오후 설정이 없습니다.

날짜 벡터는 다음 순서로 정렬됩니다.

year month day hour minute second

다음 날짜 벡터는 2012년 10월 24일 오전 10:45:07을 나타냅니다.

[2012  10  24  10  45  07]

datetime 함수를 사용하여 하나 이상의 날짜 벡터를 datetime형 배열로 변환합니다.

t = datetime([2012  10  24  10  45  07])
t = 

  datetime

   24-Oct-2012 10:45:07

datevec를 사용하여 datetime형 값의 성분을 추출하는 대신, year, month, day와 같은 함수를 사용합니다.

y = year(t)
y =

        2012

또는, 연도 값에 대한 t.Year와 같이 해당 속성에 액세스합니다.

y = t.Year
y =

        2012

날짜 일련 번호 값을 날짜/시간으로 변환하기

날짜 일련 번호 값은 고정 기준 날짜 이후 경과된 일수로 달력 날짜를 나타냅니다. MATLAB에서 날짜 일련 번호 값 1은 0000년 1월 1일입니다.

일련 시간은 자정에 시작되는 일수의 소수부를 나타냅니다. 예를 들어 오후 6시는 일련 일수 0.75일과 동일합니다. 따라서 MATLAB에서 문자형 벡터 '31-Oct-2003, 6:00 PM'은 날짜 번호 값 731885.75에 해당합니다.

datetime 함수를 사용하여 하나 이상의 날짜 일련 번호 값을 datetime형 배열로 변환합니다. 변환되는 날짜 번호 값의 유형을 지정합니다.

t = datetime(731885.75,'ConvertFrom','datenum')
t = 

  datetime

   31-Oct-2003 18:00:00

datetime형 배열을 숫자형 값으로 변환하기

일부 MATLAB 함수는 입력값으로 숫자 데이터형을 받지만, datetime형 값은 받지 않습니다. 이러한 함수를 날짜 및 시간 데이터에 적용하려면 datetime형 값을 유의미한 숫자형 값으로 변환해야 합니다. 그런 다음, 함수를 호출합니다. 예를 들어, log 함수는 double형 입력값을 받지만, datetime형 입력값은 받지 않습니다. 조사 연구 기간이나 실험 기간 날짜로 구성된 datetime형 배열이 있다고 가정해 보겠습니다.

t = datetime(2014,6,18) + calmonths(1:4)
t = 

  1×4 datetime array

   18-Jul-2014   18-Aug-2014   18-Sep-2014   18-Oct-2014

원래 값을 뺍니다. 예를 들어, 원래 값은 실험의 시작일일 수 있습니다.

dt = t - datetime(2014,7,1)
dt = 

  1×4 duration array

    408:00:00   1152:00:00   1896:00:00   2616:00:00

dtduration형 배열입니다. years, days, hours, minutes, seconds 함수 중 하나를 사용하여 dt를 단위가 각각 연수, 일수, 시, 분 또는 초인 값으로 구성된 double형 배열로 변환합니다.

x = hours(dt)
x =

         408        1152        1896        2616

double형 배열을 입력값으로 log 함수에 전달합니다.

y = log(x)
y =

    6.0113    7.0493    7.5475    7.8694

참고 항목

| | | | | |

관련 항목