[ruby-core:93370] [Ruby trunk Bug#12259] DateTime.parse does not take into account the system timezone
From:
merch-redmine@...
Date:
2019-06-26 19:39:11 UTC
List:
ruby-core #93370
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>