2013-03-19 1 views
3

내가 이해하지 못하는 것이 있습니다. 나는 단순히 다른 시간대의 날짜를 변환하려고합니다. 날짜는 8601-ISO 형식입니다. 나는 this을 따라 갔다.뭔가 잘못 변환 ISO 8601 'POSIXct'개체가있는 날짜/시간

pb.txt <- "2012-09-11T21:23:20Z" 
pb.date <- as.POSIXct(pb.txt, tz="UTC") 
format(pb.date, tz="WEST",usetz=TRUE) 
[1] "2012-09-11 WEST" 

날짜 만 표시되고 시간 소인이 표시되지 않는 이유는 무엇입니까? 나는 또한 시도 :

pb.date <- as.POSIXct(pb.txt, origin=ISOdatetime(2012,09,11,21,23,20)) 
format(pb.date, tz="WEST",usetz=TRUE) 
[1] "2012-09-10 22:00:00 WEST 

그것은 더 나은,하지만 타임 스탬프가 반올림됩니다. 완벽하게 8601-ISO datetime을 변환하는 방법은 무엇입니까?

답변

8

를 사용하여 올바른 형식 :

은 시간이 시간대 일광 절약 시간제를 사용하지 않는 대답을 @JoshuaUlrich에 추가
as.POSIXct(pb.txt, "%Y-%m-%dT%H:%M:%S", tz="UTC") 
[1] "2012-09-11 21:23:20 UTC" 
+0

좋아, 내가 같은 결과를 얻을 : POSIXct에 날짜를 변환하는 것은 괜찮습니다. 그러나 다른 표준 시간대에 인쇄하십시오 : 형식 (pb.date, tz = "WEST", usetz = TRUE) >> [1] "2012-09-10 22:00:00 WEST". 아무것도 바뀌지 않습니다. – jonathan

+0

@jonathan :' "WEST"'은 (는) 잘못된 시간대입니다. '? timezone'을 보라. –

+0

예, 당신은 그것에 대해 옳습니다 (plannapus가 그것을 알아 차 렸기 때문에). 내가 한 두 가지 실수는 아닙니다! 도와 주셔서 대단히 감사합니다. :) – jonathan

1

: 선택한 날이 여름 기간 동안 떨어지는 경우 일정한 시간대를 사용, 시스템이 자동으로 변환됩니다 .

format(pb.date, tz="WEST",usetz=TRUE) 
[1] "2012-09-11 21:23:20 UTC" 

을하지만이되지 않습니다 :

을 감안할 때 pb.date <- as.POSIXct(pb.txt, "%Y-%m-%dT%H:%M:%S", tz="UTC") 여호수아의 대답에 따라,이 실패

format(pb.date, tz="WET", usetz=TRUE) 
[1] "2012-09-11 22:23:20 WEST" 
+0

내가 얻는 것은 :> format (pb.date, tz = "WET", usetz = TRUE) >> [1] "2012-09-10 23:00:00 WEST"and> format (pb.date , tz = "WEST", usetz = TRUE) >> [1] "2012-09-10 22:00:00 WEST"그럼 아무것도 바뀌지 않습니다 .../ – jonathan

+0

문자 그대로'pb.txt <- "2012 "% Y- % m- % dT % H : % M : % S", tz = "UTC"-09-11T21 : 23 : 20Z "'pb.date <- as.POSIXct (pb.txt,"%)''format (pb.date, tz = "WET", usetz = TRUE)'당신에게 "2012-09-10 23:00:00 WEST"를 제공합니까? – plannapus

+0

네가 맞아, 이상했다. 내가 뭔가를 제대로하지 않은 것 같아요. 오늘 체크했는데 ... 모든 것이 훌륭하게 작동합니다. 매우 감사합니다. :) – jonathan

관련 문제