Непоследовательные результаты от difftime - PullRequest
2 голосов
/ 02 февраля 2012
> time1 = strptime("2010-03-01 00:15:00", format = "%Y-%m-%d %H:%M:%S")
> time2a = strptime("2010-03-01", format = "%Y-%m-%d")
> time2b = as.Date(time2a)
> difftime(time1, time2a)
Time difference of 15 mins
> difftime(time1, time2b)
Time difference of 5.25 hours

Со страницы справки difftime принимается объект даты (time2b). Почему результат неправильный (5,25 часа)?

Спасибо.

1 Ответ

5 голосов
/ 02 февраля 2012

Первое, что делает difftime, проверяет аргумент tz.Если отсутствует, он использует:

if(missing(tx)) {
    as.POSIXct(time1)
    as.POSIXct(time2)
}

, проверяя, что:

> as.POSIXct(time2b)
[1] "2010-02-28 16:00:00 PST"
> as.POSIXct(time2a)
[1] "2010-03-01 PST"

Так что он применяет мое смещение часового пояса к объекту date.

> difftime(time1,time2a)
Time difference of 15 mins
> difftime(time1,time2b,tz='GMT')
Time difference of 15 mins
...