Issue #12259 has been updated by jeremyevans0 (Jeremy Evans).


I do not think this is a bug.  DateTime has always defaulted to UTC, not just in `DateTime.parse`:

```ruby
DateTime.new.zone
# => "+00:00"

DateTime.strptime('2009', '%Y').zone
# => "+00:00"

DateTime.jd(2458000)
# => "+00:00"
```

To switch to defaulting to local time for compatibility with `Time` would be a huge break to backwards compatibility, and I don't think such a change is worthwhile.  I think `DateTime` mostly exists for backwards compatibility, since starting in Ruby 2.6, `Time` can handle timezones (timezone handling was the last major advantage of `DateTime` over `Time`).

----------------------------------------
Bug #12259: DateTime.parse does not take into account the system timezone
https://bugs.ruby-lang.org/issues/12259#change-78894

* Author: sonots (Naotoshi Seo)
* Status: Open
* Priority: Normal
* Assignee: 
* Target version: 
* ruby -v: ruby 2.3.0p0 (2015-12-25 revision 53290) [x86_64-darwin13]
* Backport: 2.1: UNKNOWN, 2.2: UNKNOWN, 2.3: UNKNOWN
----------------------------------------
DateTime.parse does not take into account the system timezone although Time.parse does take into account the system timezone.

```
irb(main):002:0> DateTime.parse('2011-10-10 10:00:00')
=> #<DateTime: 2011-10-10T10:00:00+00:00 ((2455845j,36000s,0n),+0s,2299161j)>
irb(main):005:0> Time.parse('2011-10-10 10:00:00')
=> 2011-10-10 10:00:00 +0900
```

Are there any reasons that `DateTime.parse` behaves like this?
Can this behavior  be changed, or do we have to keep this behavior for lower version compatibility?



-- 
https://bugs.ruby-lang.org/

Unsubscribe: <mailto:ruby-core-request / ruby-lang.org?subject=unsubscribe>
<http://lists.ruby-lang.org/cgi-bin/mailman/options/ruby-core>