<p>I found one source which successfully overrode <code>Time.strftime</code> like this:</p>

<pre><code>class Time
  alias :old_strftime :strftime
  def strftime
    #do something
    old_strftime
  end
end
</code></pre>

<p>The trouble is, <code>strftime</code> is an instance method.  I need to override <code>Time.now</code> - a class method - in such away that any caller gets my new method, while the new method still calls the original <code>.now</code> method.  I've looked at <code>alias_method</code> and have met with no success.</p>

Class methods are just methods. I highly recommend against this, but you have two equivalent choices:
```
```
class Time
  class << self
    alias_method :old_time_now, :now

    def now
      my_now = old_time_now
      # new code
      my_now
    end
  end
end

class << Time
  alias_method :old_time_now, :now

  def now
    my_now = old_time_now
    # new code
    my_now
  end
end
```
```