aboutsummaryrefslogtreecommitdiffstats
path: root/activesupport/lib/active_support/time_with_zone.rb
diff options
context:
space:
mode:
authorDavid Celis <me@davidcel.is>2015-10-13 00:42:39 -0700
committerDavid Celis <me@davidcel.is>2015-10-15 09:25:34 -0700
commit8e847dcde8fdbd8dfab16f917babf9b300399e22 (patch)
tree1c0a268b04ee82e85ce42f3b191ced84881bee3d /activesupport/lib/active_support/time_with_zone.rb
parent97cdab0680dfa5856f8ec3dfa85e7fafc7f334ae (diff)
downloadrails-8e847dcde8fdbd8dfab16f917babf9b300399e22.tar.gz
rails-8e847dcde8fdbd8dfab16f917babf9b300399e22.tar.bz2
rails-8e847dcde8fdbd8dfab16f917babf9b300399e22.zip
Expand support for ActiveSupport::TimeWithZone#utc?
Currently, ActiveSupport::TimeWithZone#utc? simply runs a check to see if the linked ActiveSupport::TimeZone's name is "UTC". This will only return true for ActiveSupport::TimeZone["UTC"], but not for time zones such as "Etc/UTC", "Etc/Universal", or other time zones that are aliases for UTC. Interestingly enough, ActiveSupport::TimeWithZone#utc? is also aliased as #gmt? but will return false for the "GMT" timezone (along with other TZInfo aliases for GMT). Instead of running a simple check on the TimeZone name, we can rely on the underlying TZInfo::TimezonePeriod and TZInfo::TimezoneOffset which keep a record of of the offset's abbreviated name. The possibilities here for UTC time zones are `:UTC`, `:UCT`, and `:GMT`. Signed-off-by: David <me@davidcel.is>
Diffstat (limited to 'activesupport/lib/active_support/time_with_zone.rb')
-rw-r--r--activesupport/lib/active_support/time_with_zone.rb2
1 files changed, 1 insertions, 1 deletions
diff --git a/activesupport/lib/active_support/time_with_zone.rb b/activesupport/lib/active_support/time_with_zone.rb
index 3592dcba39..910c1f91a5 100644
--- a/activesupport/lib/active_support/time_with_zone.rb
+++ b/activesupport/lib/active_support/time_with_zone.rb
@@ -102,7 +102,7 @@ module ActiveSupport
# Time.zone = 'Eastern Time (US & Canada)' # => 'Eastern Time (US & Canada)'
# Time.zone.now.utc? # => false
def utc?
- time_zone.name == 'UTC'
+ period.offset.abbreviation == :UTC || period.offset.abbreviation == :UCT
end
alias_method :gmt?, :utc?