diff --git a/addons/web/views/webclient_templates.xml b/addons/web/views/webclient_templates.xml
index deb37ef3f3c..23fd4e36e8a 100644
--- a/addons/web/views/webclient_templates.xml
+++ b/addons/web/views/webclient_templates.xml
@@ -464,6 +464,12 @@
+
+
+
diff --git a/odoo/addons/base/models/res_users.py b/odoo/addons/base/models/res_users.py
index e9394d870e9..ab48d6270dd 100644
--- a/odoo/addons/base/models/res_users.py
+++ b/odoo/addons/base/models/res_users.py
@@ -643,6 +643,10 @@ class Users(models.Model):
raise AccessDenied()
user = user.with_user(user)
user._check_credentials(password)
+ tz = request.httprequest.cookies.get('tz') if request else None
+ if tz in pytz.all_timezones and (not user.tz or not user.login_date):
+ # first login or missing tz -> set tz to browser tz
+ user.tz = tz
user._update_last_login()
except AccessDenied:
_logger.info("Login failed for db:%s login:%s from %s", db, login, ip)