diff --git a/src/backend/utils/adt/date.c b/src/backend/utils/adt/date.c
index 0bea16cb67..b9ee5319de 100644
--- a/src/backend/utils/adt/date.c
+++ b/src/backend/utils/adt/date.c
@@ -3068,8 +3068,8 @@ timetz_zone(PG_FUNCTION_ARGS)
 	}
 	else if (type == DYNTZ)
 	{
-		/* dynamic-offset abbreviation, resolve using current time */
-		pg_time_t	now = (pg_time_t) time(NULL);
+		/* dynamic-offset abbreviation, resolve using transaction start time */
+		pg_time_t	now = timestamptz_to_time_t(GetCurrentTransactionStartTimestamp());
 		struct pg_tm *tm;
 
 		tm = pg_localtime(&now, tzp);
@@ -3081,8 +3081,8 @@ timetz_zone(PG_FUNCTION_ARGS)
 		tzp = pg_tzset(tzname);
 		if (tzp)
 		{
-			/* Get the offset-from-GMT that is valid today for the zone */
-			pg_time_t	now = (pg_time_t) time(NULL);
+			/* Get the offset from now() that is valid for the zone */
+			pg_time_t	now = timestamptz_to_time_t(GetCurrentTransactionStartTimestamp());
 			struct pg_tm *tm;
 
 			tm = pg_localtime(&now, tzp);
diff --git a/src/include/catalog/catversion.h b/src/include/catalog/catversion.h
index 21b6648f5a..493d9e2a64 100644
--- a/src/include/catalog/catversion.h
+++ b/src/include/catalog/catversion.h
@@ -53,6 +53,6 @@
  */
 
 /*							yyyymmddN */
-#define CATALOG_VERSION_NO	202108311
+#define CATALOG_VERSION_NO	202109011
 
 #endif
diff --git a/src/include/catalog/pg_proc.dat b/src/include/catalog/pg_proc.dat
index 4f170eaf48..1a74d78330 100644
--- a/src/include/catalog/pg_proc.dat
+++ b/src/include/catalog/pg_proc.dat
@@ -5953,7 +5953,7 @@
   proname => 'timestamp_larger', prorettype => 'timestamp',
   proargtypes => 'timestamp timestamp', prosrc => 'timestamp_larger' },
 { oid => '2037', descr => 'adjust time with time zone to new zone',
-  proname => 'timezone', provolatile => 'v', prorettype => 'timetz',
+  proname => 'timezone', provolatile => 's', prorettype => 'timetz',
   proargtypes => 'text timetz', prosrc => 'timetz_zone' },
 { oid => '2038', descr => 'adjust time with time zone to new zone',
   proname => 'timezone', prorettype => 'timetz',
