If you try to convert a string using lubridate::as_date
while specifying the format
, you must also set tz
, but it isn't used.
library(lubridate)
#>
#> Attaching package: 'lubridate'
#> The following object is masked from 'package:base':
#>
#> date
x <- "05172018"
as_date(x)
#> Warning: All formats failed to parse. No formats found.
#> [1] NA
as_date(x, format = "%m%d%Y")
#> Error in strptime(x, format, tz): invalid 'tz' value
as_date(x, tz = "America/New_York", format = "%m%d%Y")
#> [1] "2018-05-17"
tz(.Last.value)
#> [1] "UTC"
Current Github version, 1.7.4.
On the one hand, this is unexpected, surprising behavior, but on the other hand, do timezones _ever_ matter for Date
's?
In the very least, seems like you shouldn't need the tz
arg here; the second option should work.
Indeed, should be fixed.
as_date
is not an idiomatic parser btw. Use mdy
for this particular case.
per discussion on #675 should as_date
have its tz
arg removed?
Minimal reprex:
library(lubridate, warn.conflicts = FALSE)
x <- "05172018"
as_date(x)
#> Warning: All formats failed to parse. No formats found.
#> [1] NA
as_date(x, format = "%m%d%Y")
#> Error in strptime(x, format, tz): invalid 'tz' value
as_date(x, tz = "America/New_York", format = "%m%d%Y")
#> [1] "2018-05-17"
Created on 2019-11-19 by the reprex package (v0.3.0)