It's local to the thread (which can serve multiple users) but it is not local to the session. So you absolutely can get 'cross talk' between sessions unless you run the before_filter AND set the timezone on every request (even requests for non-logged-in users)
But Time.zone is NOT request local. So if you change the Time.zone for User1, User2 will have their timezone changed also if their request occurs later in the same thread.
It's local to the thread (which can serve multiple users) but it is not local to the session. So you absolutely can get 'cross talk' between sessions unless you run the before_filter AND set the timezone on every request (even requests for non-logged-in users)
But Time.zone is NOT request local. So if you change the Time.zone for User1, User2 will have their timezone changed also if their request occurs later in the same thread.