Main Content

날짜 벡터 변환에서 예기치 않은 출력값이 반환되는 경우

참고

날짜 벡터 대신 datetime형 값을 사용하여 특정 시점을 나타내는 것이 좋습니다. 날짜 벡터와 다르게 datetime형 값은 사람이 읽을 수 있는 형식으로 표시되므로, 대개의 경우 텍스트로 변환할 필요가 없습니다. 날짜 벡터를 텍스트로 변환해야 하는 경우 먼저 datetime형 값으로 변환한 후 string 함수나 char 함수를 사용하여 datetime형 값을 텍스트로 변환하는 것이 가장 좋습니다. datestr 함수를 사용하여 날짜 벡터를 텍스트로 직접 변환할 수 있지만, 그럴 경우 이 섹션에 설명된 대로 예기치 못한 결과가 발생할 수 있습니다.

날짜 벡터는 숫자로 구성된 1×6 행 벡터이므로, datestr 함수가 입력 날짜 벡터를 날짜 일련 번호 값으로 구성된 벡터로 해석하여 예기치 않은 출력을 반환할 수 있습니다. 또는 날짜 일련 번호 값으로 구성된 벡터를 날짜 벡터로 해석할 수도 있습니다. 이러한 모호성은 datestr이 발견적 규칙을 사용하여 1×6 행 벡터를 날짜 벡터 또는 6개의 날짜 일련 번호 값으로 구성된 벡터로 해석하기 때문입니다. m×6 숫자형 행렬도 각 행이 날짜 벡터 또는 6개의 날짜 일련 번호 값으로 해석될 수 있기 때문에 여기에도 동일한 모호성이 적용됩니다.

예를 들어, 연도 3000을 포함하는 날짜 벡터가 있다고 가정해 보겠습니다. 이 연도는 datestr이 날짜 벡터의 요소로 해석하는 연도의 범위를 벗어납니다. 따라서, 이 입력값은 날짜 일련 번호 값으로 구성된 1×6 벡터로 해석됩니다.

d = datestr([3000 11 05 10 32 56])
d =

  6×11 char array

    '18-Mar-0008'
    '11-Jan-0000'
    '05-Jan-0000'
    '10-Jan-0000'
    '01-Feb-0000'
    '25-Feb-0000'

여기서 datestr은 3000을 날짜 일련 번호 값으로 해석하며 이를 '18-Mar-0008'(0-Jan-0000로부터 3000일 이후의 날짜)이라는 텍스트로 변환합니다. 또한, datestr은 다음 5개 요소를 날짜 일련 번호 값인 것처럼 변환합니다.

이러한 날짜 벡터를 텍스트로 변환하는 방법은 두 가지가 있습니다.

  • 권장 방법은 날짜 벡터를 datetime형 값으로 변환하는 것입니다. 그런 다음 char, cellstr 또는 string 함수를 사용하여 변환합니다. datetime 함수는 1×6 숫자형 벡터를 항상 날짜 벡터로 취급합니다.

    dt = datetime([3000 11 05 10 32 56]);
    ds = string(dt)
    
    dt =
    
        "05-Nov-3000 10:32:56"
    
  • 다른 방법은 datenum 함수를 사용하여 이러한 날짜 벡터를 날짜 일련 번호 값으로 변환하는 것입니다. 그런 다음 datestr을 사용하여 날짜 번호 값을 문자형 벡터로 변환합니다.

    dn = datenum([3000 11 05 10 32 56]);
    ds = datestr(dn)
    
    ds =
    
        '05-Nov-3000 10:32:56'
    

날짜를 텍스트로 변환하는 경우 datestr은 발견적 규칙을 사용하여 입력값을 날짜 벡터나 날짜 일련 번호 값으로 해석합니다. m×6 행렬이 있다고 가정해 보겠습니다. datestr 함수는 다음과 같은 경우 이 행렬을 m개의 날짜 벡터로 해석합니다.

  • 처음 5개의 열에 정수가 포함된 경우.

  • 각 행의 합에 대한 절댓값이 1500–2500 범위 내에 있는 경우.

임의의 행에 대해 두 조건 중 하나가 false이면 datestrm×6 행렬을 날짜 일련 번호 값으로 구성된 m×6 행렬로 해석합니다.

일반적으로, 1700–2300 범위 내의 연도를 포함하는 날짜는 날짜 벡터로 해석됩니다. 그러나, datestr은 정상 범위를 벗어나는 월, 일, 시, 분, 초 값을 포함하는 행을 날짜 일련 번호 값으로 해석할 수 있습니다. 예를 들어, datestr은 연도 2020에 대한 다음 날짜 벡터를 올바르게 해석합니다.

d = datestr([2020 06 21 10 51 00])
d =

    '21-Jun-2020 10:51:00'

그러나 일반적인 범위(1–31)를 벗어나는 일 값의 경우, datestr은 벡터의 각 요소에 대해 날짜를 반환합니다.

d = datestr([2020 06 2110 10 51 00])
d =

  6×11 char array

    '12-Jul-0005'
    '06-Jan-0000'
    '10-Oct-0005'
    '10-Jan-0000'
    '20-Feb-0000'
    '00-Jan-0000'

datetime 함수는 숫자형 입력값을 항상 날짜 벡터로 취급합니다. 이 경우 2110을 2020년 6월 1일로부터 2110번째 날로 해석하여 적절한 날짜를 계산합니다.

d = datetime([2020 06 2110 10 51 00])
d = 

  datetime

   11-Mar-2026 10:51:00
  • datestr이 날짜 일련 번호 값으로 잘못 해석할 수 있는 날짜 벡터로 구성된 행렬이 있는 경우, datetime 함수 또는 datenum 함수를 사용하여 행렬을 변환하십시오. 그런 다음, 이러한 값을 텍스트로 변환하십시오.

  • datestr이 날짜 벡터로 해석할 수 있는 날짜 일련 번호 값으로 구성된 행렬이 있는 경우, 먼저 행렬을 열 벡터로 변환하십시오. 그런 다음, datestr을 사용하여 열 벡터를 변환하십시오.

참고 항목

| | | | |

관련 항목