UNIX 시대를 Date 객체로 변환


118

균일하게 분포 된 시계열에 대한 계산을 플로팅하고 수행하고 있습니다. 타임 스탬프는 현재 UNIX 시대 (예 :) 이후의 초 수를 나타내는 정수로 저장 1352068320되지만 Date개체는 플로팅에 더 적합 해 보입니다. 어떻게 변환 할 수 있습니까?

?Date, ?as.Date및을 읽었 ??epoch지만 해당 정보를 놓친 것 같습니다.

답변:


220

를 통해 거기 POSIXct를 설정하고 싶습니다. TZ여기에 내 (시카고) 기본값이 표시됩니다.

R> val <- 1352068320
R> as.POSIXct(val, origin="1970-01-01")
[1] "2012-11-04 22:32:00 CST"
R> as.Date(as.POSIXct(val, origin="1970-01-01"))
[1] "2012-11-05" 
R> 

편집 : 몇 년 후, 이제 언제든지 패키지를 사용할 수 있습니다 .

R> library(anytime)
R> anytime(1352068320)
[1] "2012-11-04 16:32:00 CST"
R> anydate(1352068320)
[1] "2012-11-04"
R> 

모든 것이 형식이나 원본 인수 없이 어떻게 작동하는지 주목하십시오 .


10
같은 타임 스탬프가 1415560016876있습니다. epochconverter.com은 이것을 문제없이 날짜로 변환합니다. 위의 코드는 나에게 다음과 같은 것을 제공합니다 "46832-11-09 12:47:33 EDT".
Hack-R

29
1000으로 나누어보십시오 : as.POSIXct(1415560016876/1000, origin="1970-01-01")gets "2014-11-09 13 : 06 : 56.875 CST"그리고 초가 예상 되는지 (R의 경우) 또는 밀리 초인지 확인해야합니다 .
Dirk Eddelbuettel 2014

2
@Shambho : 그냥 반대로하고 당신이 같은 크기인지 확인하십시오 :print(as.numeric(Sys.time()))
Dirk Eddelbuettel

2
항상 똑같습니다. 현재 시간 과 같은 규모에 도달하도록 필요한 규모조정print(as.numeric(Sys.time()), digits=16) 합니다. 6 자리 숫자는 내 Linux 시스템입니다. 또한 1000으로 나눌 수 있습니다 . 이것은 잘리지 않습니다.
Dirk Eddelbuettel

1
R 변수에서 현지 시간 만 추출하고 날짜를 덤프하는 방법은 무엇입니까?
Stratix

17

에서 library(lubridate)1970-01-01 00:00:00 UTC 이후의 초 수로 저장된 날짜 및 시간의 숫자 표현은 다음을 사용하여 날짜로 통합 될 수 있습니다 as_datetime().

lubridate::as_datetime(1352068320)

[1] "2012-11-04 22:32:00 UTC"
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.