さまざまなユーザーに代わって電子メールを受信するアプリケーションがあり、これらのユーザーの受信トレイ ( Mailgem を使用して IMAP を介して取得) にはさまざまなタイムゾーンがあります。例えば:
Loading development environment (Rails 3.2.12)
2.0.0-p247 :001 > first = Email.all[0].datetime
 => Mon, 04 Feb 2013 07:05:28 +0000
2.0.0-p247 :002 > second = Email.all[1].datetime
 => Wed, 21 Aug 2013 11:54:49 +0200 
私のアプリケーションのユーザーはさまざまなタイムゾーンにいるため、それぞれのタイムゾーンを示すデータベース フィールドがあります。これは、例えば"+0000"、または"-0500". 元のタイムゾーンを傍受し、時間をユーザーのタイムゾーンに変換するコードが必要です。
例えば:
class User
  include Mongoid::Document
  field :timezone, :type => String, :default => "+0200"
  has_many :emails, :inverse_of => :user
end
class Email
  include Mongoid::Document
  field :datetime, :type => DateTime
  belongs_to :user, :inverse_of => :emails
end
Loading development environment (Rails 3.2.12)
2.0.0-p247 :001 > email = User.first.emails.first
 => #<Email ... >
2.0.0-p247 :002 > datetime = email.datetime
 => Mon, 04 Feb 2013 07:05:28 +0000
2.0.0-p247 :003 > email.update_attribute(datetime: datetime.convert_zone(datetime.zone, user.timezone)  # => convert_zone is not an actual method, so what should I put in here?
 => Mon, 04 Feb 2013 09:05:28 +0200