diff --git a/.docker/docker-compose.yml b/.docker/docker-compose.yml
index a3c0bae6bf74a2c2cf25f38dcba57293c96d8f40..20f1a15a9348f202d5ddb6a5956e0b846e761221 100644
--- a/.docker/docker-compose.yml
+++ b/.docker/docker-compose.yml
@@ -32,6 +32,7 @@ services:
       - "10080:10080"
     environment:
       DEBUG: 1
+      DOCKER_TZ: "Cuba"
       CAOSDB_CONFIG_AUTHTOKEN_CONFIG: "conf/core/authtoken.example.yaml"
       CAOSDB_CONFIG_TRANSACTION_BENCHMARK_ENABLED: "TRUE"
       CAOSDB_CONFIG__CAOSDB_INTEGRATION_TEST_SUITE_KEY: _CAOSDB_PYINTTEST_SUITE
diff --git a/.docker/tester_pycaosdb.ini b/.docker/tester_pycaosdb.ini
index 2159dec250b3dcb2f16043d12bdbe73675e4d75c..b0d2e9f095a08b3f4d63d5f20152ef65ec888ecb 100644
--- a/.docker/tester_pycaosdb.ini
+++ b/.docker/tester_pycaosdb.ini
@@ -18,6 +18,8 @@ test_authentication.admin_token_crud = /authtoken/admin_token_crud.txt
 test_authentication.admin_token_expired = /authtoken/admin_token_expired.txt
 test_authentication.admin_token_3_attempts = /authtoken/admin_token_3_attempts.txt
 
+; magic time zone of the server
+test_misc.test_time_zone.time_zone = Cuba
 
 [Connection]
 url = https://caosdb-server:10443/
diff --git a/tests/test_misc.py b/tests/test_misc.py
index 50397b71fc8fab1f86d44c70a0a8d65b9e318b89..326cd02e07de5313f84844d823490123b193bbd4 100644
--- a/tests/test_misc.py
+++ b/tests/test_misc.py
@@ -28,8 +28,7 @@ import caosdb as db
 from caosdb import (Container, Info, Property, Record, RecordType,
                     execute_query, administration as admin)
 from caosdb.utils.register_tests import set_test_key, clear_database
-from pytest import raises
-from pytest import mark
+from pytest import raises, mark, fixture
 
 set_test_key("_CAOSDB_PYINTTEST_SUITE")
 
@@ -422,3 +421,36 @@ def test_retrieve_wrong_role(clear_database):
                                 "intialized with a wrong class by this client "
                                 "or it has changed in the past and this "
                                 "client did't know about it yet.")
+
+
+@fixture
+def reset_time_zone():
+    yield None
+    server_time_zone = db.get_config().get("IntegrationTests",
+                                           "test_misc.test_time_zone.time_zone")
+    if server_time_zone is not None:
+        admin.set_server_property("TIMEZONE", server_time_zone)
+
+
+def test_time_zone(reset_time_zone):
+    server_time_zone = db.get_config().get("IntegrationTests",
+                                           "test_misc.test_time_zone.time_zone")
+
+    if server_time_zone is not None:
+        assert admin.get_server_property(
+            "TIMEZONE") == server_time_zone, "If this test fails locally, try to re-run it"
+
+    admin.set_server_property("TIMEZONE", "UTC")
+    assert db.Info().time_zone.offset == "+0000"
+    admin.set_server_property("TIMEZONE", "Etc/GMT+5")  # Standard Time NY
+    gmt_plus_5 = db.Info().time_zone.offset
+    assert gmt_plus_5 == "-0500"
+
+    # Today I learned: POSIX defines GMT+X as UTC-X (... no words...)
+    admin.set_server_property("TIMEZONE", "EST")
+    assert db.Info().time_zone.offset == gmt_plus_5
+
+    admin.set_server_property("TIMEZONE", "Etc/GMT-1")  # Standard Time Berlin
+    assert db.Info().time_zone.offset == "+0100"
+    admin.set_server_property("TIMEZONE", "Etc/GMT-14")  # Kiritimati
+    assert db.Info().time_zone.offset == "+1400"