1
不一致的行爲請看下面的例子lubridate:與時區
library(lubridate)
library(tidyverse)
> hour(ymd_hms('2008-01-04 00:00:00'))
[1] 0
現在,
dataframe <- data_frame(time = c(ymd_hms('2008-01-04 00:00:00'),
ymd_hms('2008-01-04 00:01:00'),
ymd_hms('2008-01-04 00:02:00'),
ymd_hms('2008-01-04 00:03:00')),
value = c(1,2,3,4))
mutate(dataframe,hour = strftime(time, format="%H:%M:%S"),
hour2 = hour(time))
# A tibble: 4 × 4
time value hour hour2
<dttm> <dbl> <chr> <int>
1 2008-01-03 19:00:00 1 19:00:00 19
2 2008-01-03 19:01:00 2 19:01:00 19
3 2008-01-03 19:02:00 3 19:02:00 19
4 2008-01-03 19:03:00 4 19:03:00 19
這到底是怎麼回事?爲什麼日期轉換成當地時間,我不知道事件?
是的,'strftime'將使用您當前的時區。改用'strftime(time,format =「%H:%M:%S」,tz =「UTC」)。 – konvas
謝謝,但仍然是一個謎是爲什麼'lubridate:hour'現在使用當地時區,而第一個示例顯示它正確提取小時爲'0' –