[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