이 번역 페이지는 최신 내용을 담고 있지 않습니다. 최신 내용을 영문으로 보려면 여기를 클릭하십시오.
날짜/시간을 율리우스 적일 또는 POSIX 시간으로 변환하기
특정 시점을 특화된 수치 형식으로 표시하기 위해 datetime
형 배열을 변환할 수 있습니다. 일반적으로 이런 형식은 지정된 시작 시점 이후 경과한 초 또는 일수로 특정 시점을 표시합니다. 예를 들어, 율리우스 적일은 율리우스 주기가 시작된 이후 경과한 일수와 소수 일(Fractional Day)입니다. POSIX® 시간은 1-Jan-1970(1970년 1월 1일) 00:00:00 UTC(협정 세계시) 이후 경과한 초입니다. MATLAB®은 datetime
형 배열을 율리우스 적일과 POSIX 시간으로 변환하는 juliandate
함수와 posixtime
함수를 제공합니다.
datetime
형 배열에 반드시 표준 시간대를 지정할 필요는 없지만, "표준 시간대가 지정되지 않은" datetime
형 값을 율리우스 적일이나 POSIX 시간으로 변환하면 예기치 않은 결과가 나올 수 있습니다. 예상된 결과를 보장하려면 변환을 수행하기 전에 표준 시간대를 지정하십시오.
변환 전에 표준 시간대 지정하기
datetime
형 배열에 표준 시간대를 지정할 수 있지만, 반드시 지정해야 하는 것은 아닙니다. 실제로, datetime
함수는 기본적으로 "표준 시간대가 지정되지 않은" datetime
형 배열을 만듭니다.
현재 날짜/시간에 대해 datetime
형 값을 만듭니다.
d = datetime("now")
d = datetime
24-Jul-2022 22:15:16
d
는 컴퓨터의 현지 시간에서 생성되며 이와 연결된 표준 시간대가 없습니다. 대부분의 상황에서, 표준 시간대가 지정되지 않은 datetime
형 배열의 시간을 현지 시간으로 처리할 수 있다고 간주할 수 있습니다. 그러나 juliandate
함수와 posixtime
함수는 표준 시간대가 지정되지 않은 datetime
형 배열의 시간을 현지 시간이 아니라 UTC 시간으로 처리합니다. 모호성을 피하기 위해, 표준 시간대가 지정되지 않은 datetime
형 배열에서는 juliandate
함수와 posixtime
함수를 사용하지 않는 것이 좋습니다. 예를 들어, 코드에 posixtime(datetime("now"))
를 사용하지 마십시오.
datetime
형 배열에 UTC 시간을 나타내지 않는 값이 포함된 경우 juliandate
함수와 posixtime
함수가 datetime
형 값을 올바르게 해석하도록 TimeZone
이름-값 쌍 인수를 사용하여 표준 시간대를 지정하십시오.
d = datetime("now","TimeZone","America/New_York")
d = datetime
24-Jul-2022 22:15:16
다른 방법으로, 배열을 만든 후에 TimeZone
속성을 지정할 수 있습니다.
d.TimeZone = "America/Los_Angeles"
d = datetime
24-Jul-2022 19:15:16
표준 시간대의 전체 목록을 보려면 timezones
함수를 사용하십시오.
표준 시간대가 지정된 datetime형 값과 표준 시간대가 지정되지 않은 datetime형 값을 율리우스 적일로 변환하기
율리우스 적일은 역산 그레고리력의 기원전 4714년 11월 24일 정오 또는 역산 율리우스력(Julian Calendar)의 기원전 4713년 1월 1일 정오 이후의 일수(소수 일(Fractional Day) 포함)입니다. datetime
형 배열을 율리우스 적일로 변환하려면 juliandate
함수를 사용하십시오.
datetime
형 배열을 만들고, 해당 표준 시간대를 지정합니다.
DZ = datetime("2016-07-29 10:05:24") + calmonths(1:3); DZ.TimeZone = "America/New_York"
DZ = 1x3 datetime
29-Aug-2016 10:05:24 29-Sep-2016 10:05:24 29-Oct-2016 10:05:24
D
를 상응하는 율리우스 적일로 변환합니다.
format longG
JDZ = juliandate(DZ)
JDZ = 1×3
2457630.08708333 2457661.08708333 2457691.08708333
DZ
의 표준 시간대가 지정되지 않은 복사본을 만듭니다. D
를 상응하는 율리우스 적일로 변환합니다. D
에는 표준 시간대가 없으므로 juliandate
는 시간을 UTC 시간으로 처리합니다.
D = DZ;
D.TimeZone = "";
JD = juliandate(D)
JD = 1×3
2457629.92041667 2457660.92041667 2457690.92041667
JDZ
와 JD
를 비교합니다. 그 차이는 UTC와 America/New_York
표준 시간대 사이의 표준 시간대 오프셋과 같습니다(단위: 소수 일(Fractional Day)).
JDZ - JD
ans = 1×3
0.166666666511446 0.166666666511446 0.166666666511446
표준 시간대가 지정된 datetime형 값과 표준 시간대가 지정되지 않은 datetime형 값을 POSIX 시간으로 변환하기
POSIX 시간은 1-Jan-1970(1970년 1월 1일) 00:00:00 UTC(협정 세계시) 이후 경과한 초로서 윤초는 무시합니다. datetime
형 배열을 POSIX 시간으로 변환하려면 posixtime
함수를 사용하십시오.
datetime
형 배열을 만들고, 해당 표준 시간대를 지정합니다.
DZ = datetime("2016-07-29 10:05:24") + calmonths(1:3); DZ.TimeZone = "America/New_York"
DZ = 1x3 datetime
29-Aug-2016 10:05:24 29-Sep-2016 10:05:24 29-Oct-2016 10:05:24
D
를 상응하는 POSIX 시간으로 변환합니다.
PTZ = posixtime(DZ)
PTZ = 1×3
1472479524 1475157924 1477749924
DZ
의 표준 시간대가 지정되지 않은 복사본을 만듭니다. D
를 상응하는 POSIX 시간으로 변환합니다. D
에는 표준 시간대가 없으므로 posixtime
는 시간을 UTC 시간으로 처리합니다.
D = DZ;
D.TimeZone = "";
PT = posixtime(D)
PT = 1×3
1472465124 1475143524 1477735524
PTZ
와 PT
를 비교합니다. 그 차이는 UTC와 America/New_York
표준 시간대 사이의 표준 시간대 오프셋과 같습니다(단위: 초).
PTZ - PT
ans = 1×3
14400 14400 14400
참고 항목
datetime
| timezones
| posixtime
| juliandate