[ https://issues.apache.org/jira/browse/ARROW-14200?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17423428#comment-17423428 ]
Jonathan Keane commented on ARROW-14200: ---------------------------------------- Thanks for digging (I hadn't had a chance to yet), I've changed the tags > [R] strftime on a date should not use or be confused by timezones > ----------------------------------------------------------------- > > Key: ARROW-14200 > URL: https://issues.apache.org/jira/browse/ARROW-14200 > Project: Apache Arrow > Issue Type: Bug > Components: R > Reporter: Jonathan Keane > Priority: Major > > When the input to {{strftime}} is a date, timezones shouldn't be necessary or > assumed. > What I think is going on below is the date 1992-01-01 is being interpreted as > 1992-01-01 00:00:00 in UTC, and then when {{strftime()}} is being called it's > displaying that timestamp as 1991-12-31 ... (since my system is set to an > after UTC timezone), and then taking the year out of it. If I specify {{tz = > "utc"}} in the {{strftime()}}, I get the expected result (though that > shouldn't be necessary). > Run in the US central timezone: > {code} > library(arrow, warn.conflicts = FALSE) > library(dplyr, warn.conflicts = FALSE) > library(lubridate, warn.conflicts = FALSE) > Table$create( > data.frame( > x = as.Date("1992-01-01") > ) > ) %>% > mutate( > as_int_strftime = as.integer(strftime(x, "%Y")), > strftime = strftime(x, "%Y"), > as_int_strftime_utc = as.integer(strftime(x, "%Y", tz = "UTC")), > strftime_utc = strftime(x, "%Y", tz = "UTC"), > year = year(x) > ) %>% > collect() > #> x as_int_strftime strftime as_int_strftime_utc strftime_utc year > #> 1 1992-01-01 1991 1991 1992 1992 1992 > {code} -- This message was sent by Atlassian Jira (v8.3.4#803005)