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)