Chaining different from temp assignment??

The following two snippets are apparenly not equivalent in an ActiveRecord model:

1.       expires_at = 90.days.from_now       self.remember_token_expires_at = expires_at.localtime

2.       self.remember_token_expires_at = 90.days.from_now.localtime

Time.now is stubbed to return Time.parse('Jan 1, 2001'). My system runs on Eastern time. With snippet #1, I see:

  UPDATE hark_users SET ... "remember_token_expires_at" = '2001-04-01   05:00:00.000000', ...

With snippet #2:

  UPDATE hark_users SET ... "remember_token_expires_at" = '2001-04-01   00:00:00.000000', ...

I am utterly mystified as to how these two snippets are not identical. Anyone have any ideas?

Jay Levitt