[Rd] Non-deterministic POSIXlt tzone in Europe/London around UTC 0
Rui Barradas
ru|pb@rr@d@@ @end|ng |rom @@po@pt
Thu Jan 15 12:42:07 CET 2026
Às 23:21 de 14/01/2026, Ben Bolker escreveu:
> It seems not so much non-deterministic, as different on the first vs.
> following invocations ...
>
>
> $ cat tz.R
> Sys.setenv(TZ="Europe/London")
> for (i in 1:10) {
> print(attr(as.POSIXlt(as.numeric(1:10)), 'tzone'))
>
> $ Rscript tz.R
> [1] "Europe/London" "GMT" "BST"
> [1] "Europe/London" "BST" "BST"
> [1] "Europe/London" "BST" "BST"
> [1] "Europe/London" "BST" "BST"
> [1] "Europe/London" "BST" "BST"
> [1] "Europe/London" "BST" "BST"
> [1] "Europe/London" "BST" "BST"
> [1] "Europe/London" "BST" "BST"
> [1] "Europe/London" "BST" "BST"
> [1] "Europe/London" "BST" "BST"
>
> $ Rscript tz.R
> [1] "Europe/London" "GMT" "BST"
> [1] "Europe/London" "BST" "BST"
> [1] "Europe/London" "BST" "BST"
> [1] "Europe/London" "BST" "BST"
> [1] "Europe/London" "BST" "BST"
> [1] "Europe/London" "BST" "BST"
> [1] "Europe/London" "BST" "BST"
> [1] "Europe/London" "BST" "BST"
> [1] "Europe/London" "BST" "BST"
> [1] "Europe/London" "BST" "BST"
>
> $ Rscript tz.R
> [1] "Europe/London" "GMT" "BST"
> [1] "Europe/London" "BST" "BST"
> [1] "Europe/London" "BST" "BST"
> [1] "Europe/London" "BST" "BST"
> [1] "Europe/London" "BST" "BST"
> [1] "Europe/London" "BST" "BST"
> [1] "Europe/London" "BST" "BST"
> [1] "Europe/London" "BST" "BST"
> [1] "Europe/London" "BST" "BST"
> [1] "Europe/London" "BST" "BST"
>
>
> On 1/14/26 17:47, Michael Chirico via R-devel wrote:
>> As a test case I have code running 'as.POSIXlt(1:10)', which can
>> unfortunately produce non-deterministic results:
>>
>> TZ=Europe/London R
>> attr(as.POSIXlt(as.numeric(1:10)), 'tzone')
>> # [1] "Europe/London" "GMT" "BST"
>> attr(as.POSIXlt(as.numeric(1:10)), 'tzone')
>> # [1] "Europe/London" "BST" "BST"
>>
>> Is this intended behavior? I don't see this possibility described in
>> any of ?DateTimeClasses, ?strptime, ?timezones, or ?as.POSIXlt. Some
>> caching is mentioned around .sys.timezone, but the above snippets
>> don't have any relationship that I can see.
>>
>> Mike C
>>
>> ______________________________________________
>> R-devel using r-project.org mailing list
>> https://stat.ethz.ch/mailman/listinfo/r-devel
>
Hello,
This also happens with a different timezone.
(Note: Lisbon time is GMT, also.)
Sys.setenv(TZ="Europe/Lisbon")
for (i in 1:10) {
print(attr(as.POSIXlt(as.numeric(1:10)), 'tzone'))
}
[1] "Europe/Lisbon" "WET" "WEST"
[1] "Europe/Lisbon" "CET" "WEST"
[1] "Europe/Lisbon" "CET" "WEST"
[1] "Europe/Lisbon" "CET" "WEST"
[1] "Europe/Lisbon" "CET" "WEST"
[1] "Europe/Lisbon" "CET" "WEST"
[1] "Europe/Lisbon" "CET" "WEST"
[1] "Europe/Lisbon" "CET" "WEST"
[1] "Europe/Lisbon" "CET" "WEST"
[1] "Europe/Lisbon" "CET" "WEST"
Hope this helps,
Rui Barradas
More information about the R-devel
mailing list