날짜 벡터 변환에서 예기치 않은 출력값이 반환되는 경우
참고
datenum
및 datestr
함수는 권장되지 않습니다. 대신, datetime
값을 사용하여 날짜 일련 번호 값이나 날짜 벡터가 아닌 특정 시점을 나타내십시오. 이러한 숫자형 표현과 달리, datetime
형 값은 사람이 읽을 수 있는 형식으로 표시되므로, 대개의 경우 텍스트로 변환할 필요가 없습니다.
날짜 벡터를 텍스트로 변환해야 하는 경우 먼저 datetime
형 값으로 변환한 후 string
함수나 char
함수를 사용하여 datetime
형 값을 텍스트로 변환하는 것이 가장 좋습니다. datetime
형 값을 사용하도록 코드를 업데이트하는 방법에 대한 자세한 내용은 Replace Discouraged Instances of Serial Date Numbers and Date Strings 항목을 참조하십시오.
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이면 datestr
은 m
×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
을 사용하여 열 벡터를 변환하십시오.
참고 항목
datetime
| datevec
| char
| string