Module: ActiveSupport::CoreExtensions::Time::Zones::ClassMethods

Module | ActiveSupport::CoreExtensions::Time::Zones::ClassMethods
In: | lib/active_support/core_ext/time/zones.rb

### Methods

current use_zone zone zone=

### Attributes

zone_default | [RW] |

### Public Instance methods

current()

Returns `Time.zone.now` when `config.time_zone` is set, otherwise just returns `Time.now`.

use_zone(time_zone) {|| ...}

Allows override of `Time.zone` locally inside supplied block; resets `Time.zone` to existing value when done.

zone()

Returns the TimeZone for the current request, if this has been set (via Time.zone=). If `Time.zone` has not been set for the current request, returns the TimeZone specified in `config.time_zone`.

zone=(time_zone)

Sets `Time.zone` to a TimeZone object for the current request/thread.

This method accepts any of the following:

- A Rails TimeZone object.
- An identifier for a Rails TimeZone object (e.g., "Eastern Time (US & Canada)", `-5.hours`).
- A TZInfo::Timezone object.
- An identifier for a TZInfo::Timezone object (e.g., "America/New_York").

Here‘s an example of how you might set `Time.zone` on a per request basis — `current_user.time_zone` just needs to return a string identifying the user‘s preferred TimeZone:

      class ApplicationController < ActionController::Base
        before_filter :set_time_zone

        def set_time_zone
          Time.zone = current_user.time_zone
        end
      end

[Validate]