Again, it would be nice if this used the `expect { }.fail_with` form.  You could do this:

``` ruby
RSpec::Matchers.define :a_string_with_differing_datetime_output do
  match do |string|
    time_strings = /expected: (.+)\n.*got: (.+)$/.match(string).captures
    time_strings.uniq.count == 2
  end
end

it 'differentiates the date time objects when their milliseconds differ' do
  expect {
    expect(date2).to eq(date1)
  }.to fail_with(a_string_with_differing_datetime_output)
end
```