diff --git a/spec/module_spec.rb b/spec/module_spec.rb
index <HASH>..<HASH> 100644
--- a/spec/module_spec.rb
+++ b/spec/module_spec.rb
@@ -223,10 +223,7 @@ describe EtOrbi do
 
         current = EtOrbi.get_tzone(:local)
 
-        class ::Time
-          alias _original_zone zone
-          def zone; "中国标准时间"; end
-        end
+        Time._zone = '中国标准时间'
 
 #        expect(
 #          EtOrbi.get_tzone(:current)
@@ -252,9 +249,7 @@ describe EtOrbi do
 
       ensure
 
-        class ::Time
-          def zone; _original_zone; end
-        end
+        Time._zone = nil
       end
 
       expect(
diff --git a/spec/spec_helper.rb b/spec/spec_helper.rb
index <HASH>..<HASH> 100644
--- a/spec/spec_helper.rb
+++ b/spec/spec_helper.rb
@@ -78,6 +78,19 @@ class Time
       "dst:#{self.isdst}"
     ].join(' ')
   end
+
+  #
+  # tools to "inject" a zone string at will
+
+  alias _original_zone zone
+
+  def zone
+    self.class._zone || _original_zone
+  end
+
+  class << self
+    attr_accessor :_zone
+  end
 end
 
 class SpecActiveSupportTimeZone
Inject arbitrary zone name at spec_helper.rb level