title: Ruby / Rails - Change the timezone of a Time, without changing the value
body: <p>I have a record <code>foo</code> in the database which has <code>:start_time</code> and <code>:timezone</code> attributes.</p>
  
  <p>The <code>:start_time</code> is a Time in UTC - <code>2001-01-01 14:20:00</code>, for example.
  The <code>:timezone</code> is a string - <code>America/New_York</code>, for example.</p>
  
  <p>I want to create a new Time object with the value of <code>:start_time</code> but whose timezone is specified by <code>:timezone</code>. I do not want to load the <code>:start_time</code> and then convert to <code>:timezone</code>, because Rails will be clever and update the time from UTC to be consistent with that timezone.</p>
  
  <p>Currently,</p>
  
  <pre><code>t = foo.start_time
  =&gt; 2000-01-01 14:20:00 UTC
  t.zone
  =&gt; "UTC"
  t.in_time_zone("America/New_York")
  =&gt; Sat, 01 Jan 2000 09:20:00 EST -05:00
  </code></pre>
  
  <p>Instead, I want to see</p>
  
  <pre><code>=&gt; Sat, 01 Jan 2000 14:20:00 EST -05:00
  </code></pre>
  
  <p>ie. I want to do:</p>
  
  <pre><code>t
  =&gt; 2000-01-01 14:20:00 UTC
  t.zone = "America/New_York"
  =&gt; "America/New_York"
  t
  =&gt; 2000-01-01 14:20:00 EST
  </code></pre>