Dear list members, I have come about a peculiar behavior in R (4.0.2) which I would describe as a bug. On macOS, where `strptime()` raises a warning for invalid timezone identifiers, the following code will continue to raise the original warning with every subsequent call to `strptime()`:
``` # attach a handler for warnings for this call only: tryCatch(strptime('2020-10-31 18:30', format = '%Y-%m-%d %H:%M', tz = 'Wrong Timezone!'), warning = function (w) { stop("Error") }) # but every subsequent call will emit the original warning ("unknown timezone 'Wrong Timezone!'") strptime('2020-10-31 18:30', format = '%Y-%m-%d %H:%M', tz = 'Europe/Vienna') strptime('2020-10-31 18:30', format = '%Y-%m-%d %H:%M', tz = 'GMT') ``` The output of the code above in R 4.0.2 on macOS is: > tryCatch(strptime('2020-10-31 18:30', format = '%Y-%m-%d %H:%M', tz = 'Wrong > Timezone!'), + warning = function (w) { stop("Error") }) Error in value[[3L]](cond) : Error > > strptime('2020-10-31 18:30', format = '%Y-%m-%d %H:%M', tz = 'Europe/Vienna') [1] "2020-10-31 18:30:00 CET" Warning message: In strptime("2020-10-31 18:30", format = "%Y-%m-%d %H:%M", tz = "Europe/Vienna") : unknown timezone 'Wrong Timezone!' > strptime('2020-10-31 18:30', format = '%Y-%m-%d %H:%M', tz = 'GMT') [1] "2020-10-31 18:30:00 GMT" Warning messages: 1: In strptime("2020-10-31 18:30", format = "%Y-%m-%d %H:%M", tz = "GMT") : unknown timezone 'Wrong Timezone!' The corresponding R session info is: > sessionInfo() R version 4.0.2 Patched (2020-07-13 r78838) Platform: x86_64-apple-darwin17.0 (64-bit) Running under: macOS Catalina 10.15.7 Matrix products: default BLAS: /Library/Frameworks/R.framework/Versions/4.0/Resources/lib/libRblas.dylib LAPACK: /Library/Frameworks/R.framework/Versions/4.0/Resources/lib/libRlapack.dylib locale: [1] en_US.UTF-8/en_US.UTF-8/en_US.UTF-8/C/en_US.UTF-8/en_US.UTF-8 attached base packages: [1] stats graphics grDevices utils datasets methods base loaded via a namespace (and not attached): [1] compiler_4.0.2 I get the same odd behavior when attaching calling handlers with `withCallingHandlers()`. On RHEL 7 and Cent OS 6, which both don't issue warnings for invalid timezones, the above code works. I don't see anything wrong with the code itself, but maybe I am missing something. Any input would be appreciated. Best wishes, David ______________________________________________ R-help@r-project.org mailing list -- To UNSUBSCRIBE and more, see https://stat.ethz.ch/mailman/listinfo/r-help PLEASE do read the posting guide http://www.R-project.org/posting-guide.html and provide commented, minimal, self-contained, reproducible code.