From: merch-redmine@... Date: 2021-07-23T19:08:56+00:00 Subject: [ruby-core:104666] [Ruby master Feature#10473] Change Date#to_datetime to use local time Issue #10473 has been updated by jeremyevans0 (Jeremy Evans). Backport deleted (2.6: UNKNOWN, 2.7: UNKNOWN, 3.0: UNKNOWN) Subject changed from Date.to_datetime.to_time != Date.to_time to Change Date#to_datetime to use local time Tracker changed from Bug to Feature I don't think this is a bug. `Time` defaults to local time, and `DateTime` to UTC: ```ruby Time.parse('2021-07-23') # => 2021-07-23 00:00:00 -0700 DateTime.parse('2021-07-23') # ``` I think `Date#to_time` and `Date#to_datetime` should continue to reflect `Time` and `DateTime` default timezone behavior. Changing `Date#to_datetime` to use the local time would change the result of the following case: ```ruby DateTime.parse(d.to_s) == d.to_datetime ``` We should only make this change if we change `DateTime` generally to use local time and not UTC, and I don't think it makes sense to do that. The cost from a backwards compatibility perspective would be very high, and considering `DateTime` is basically only for backwards compatibility, the benefit seems quite minor in comparison. One possibility for supporting this in a backwards compatible manner is a keyword for `Date#to_datetime` (and potentially `Date#to_time`) to specify the timezone to use. ---------------------------------------- Feature #10473: Change Date#to_datetime to use local time https://bugs.ruby-lang.org/issues/10473#change-92978 * Author: lojack (Jack Lowe) * Status: Open * Priority: Normal ---------------------------------------- Date.new(2014,1,1).to_datetime.to_time.utc.to_s => "2014-01-01 00:00:00 UTC" Date.new(2014,1,1).to_time.utc.to_s => "2014-01-01 05:00:00 UTC" -- https://bugs.ruby-lang.org/ Unsubscribe: