2013-04-16 2 views
4

POSIXct를 특정 표준 시간대 기준으로 낮추고 자합니다. 내가POSIX 날짜와 시간 (posixct)을 시간대를 기준으로 한 날짜로 반올림

round(as.POSIXct("2013-03-05 23:00:00 EST"), "day") 

그것이 EST5EDT에서 2013년 3월 5일에 동부 표준시 23시 00분 0초이 때 점에서 의미가

2013-03-06 

를 반환하려고하면

, 그것은 이미 2013-입니다 03-06 in UTC. 논리적으로, 제가하고 싶은 것은 :

"고 EST5EDT 시간대를 기준으로 가장 가까운 날에 원형이 날짜와 시간,"입니다
round(as.POSIXct("2013-03-05 23:00:00 EST"), "day", tz="EST5EDT") 

. 죄송 합니다만 번 반은 시간대 매개 변수를 사용하지 않습니다.

답변

7

round은 정오가 지나면 다음날로 반올림하므로 2013-03-06을 보았습니다.

round(as.POSIXct("2013-03-05 11:00:00" , tz = "EST"), "day") 
[1] "2013-03-05 EST" 

을 그리고 정오 통과되면 :

round(as.POSIXct("2013-03-05 12:00:00" , tz = "EST"), "day") 
[1] "2013-03-06 EST" 

format에 대한 호출이 같은 일을 추출은 또한 명시 적으로 관찰 as.POSIXct

에 호출에서 tz 인수를 설정해야 tz 인수가없는 문자열. 당신이 그 일에 라운드에 그 날의 모든 시간을 원하는 경우에 그래서 당신은 아마 당신이 trunc입니다 대신 원하는 시간대

format(round(as.POSIXct("2013-03-05 12:00:00" , tz = "EST"), "day")) 
[1] "2013-03-06" 

없이 원래의 결과를 얻을 수 있습니까?

format(trunc(as.POSIXct("2013-03-05 12:00:00" , tz = "EST"), "day")) 
[1] "2013-03-05" 
관련 문제