Skip to content

Use correct timezone when parsing date in json#23011

Merged
chancancode merged 1 commit intorails:masterfrom
arnvald:bugfix/correctly_parse_date
Jun 25, 2016
Merged

Use correct timezone when parsing date in json#23011
chancancode merged 1 commit intorails:masterfrom
arnvald:bugfix/correctly_parse_date

Conversation

@arnvald
Copy link
Contributor

@arnvald arnvald commented Jan 11, 2016

Fixes #22171

Time specified in ISO 8601 format without Z should be parsed as local time, yet until now it was treated as UTC.

This commit fixes problem by parsing time using timezone specified in application config.

The downside of this solution is performance hit (Time.zone.parse is ~ 1.6x slower than Time.parse), so maybe there's a better solution.

Additionally, YYYY-MM-DD format is parsed as Date not DateTime as it was until now (recommended by @pixeltrix #22171 (comment))

/cc @maclover7 @pixeltrix @chancancode

@rails-bot
Copy link

Thanks for the pull request, and welcome! The Rails team is excited to review your changes, and you should hear from @rafaelfranca (or someone else) soon.

If any changes to this PR are deemed necessary, please add them as extra commits. This ensures that the reviewer can see what has changed since they last reviewed the code. Due to the way GitHub handles out-of-date commits, this should also make it reasonably obvious what issues have or haven't been addressed. Large or tricky changes may require several passes of review and changes.

Please see the contribution instructions for more information.

@pixeltrix
Copy link
Contributor

@arnvald this looks good 👍

Can we add a CHANGELOG entry - thanks.

@arnvald arnvald force-pushed the bugfix/correctly_parse_date branch from 35cd28e to 977a408 Compare January 21, 2016 17:25
@arnvald
Copy link
Contributor Author

arnvald commented Jan 21, 2016

@pixeltrix thank you! I've rebased the branch and updated changelog

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@arnvald Newly added CHANGELOG should be added at the top of the file. Please move this entry to the top of CHANGELOG file.

Fixes rails#22171

Time specified in ISO 8601 format without `Z` should be considered as local
time, yet until now it was treated as UTC.

This commit fixes problem by parsing time using timezone specified in
application config.

The downside of this solution is performance hit (`Time.zone.parse` is ~ 1.6x
slower than `Time.parse`), so maybe there's a better solution.
@arnvald arnvald force-pushed the bugfix/correctly_parse_date branch from 977a408 to a3ddd5f Compare January 22, 2016 01:25
@arnvald
Copy link
Contributor Author

arnvald commented Jan 22, 2016

@prathamesh-sonpatki updated, thanks for information! :)

@chancancode chancancode merged commit a3ddd5f into rails:master Jun 25, 2016
chancancode added a commit that referenced this pull request Jun 25, 2016
Use correct timezone when parsing date in json
@chancancode
Copy link
Member

chancancode commented Jun 25, 2016

@arnvald omg! so sorry for the delay, I have merged this in 3a9428d

@rafaelfranca @sgrif @eileencodes should this be backported to 5-0-0 or 5-0-stable? I would like to get this on 5.0.0 if possible because it is technically a breaking change (the class changed from Time to Date in some cases), and I would like to not do that in 5.0.0 rather than 5.0.1 (or we can leave this for 5.1.0 I suppose)

chancancode added a commit that referenced this pull request Jun 27, 2016
chancancode added a commit to chancancode/rails that referenced this pull request Jun 27, 2016
Use correct timezone when parsing date in json
chancancode added a commit to chancancode/rails that referenced this pull request Jun 27, 2016
chancancode added a commit to chancancode/rails that referenced this pull request Jun 27, 2016
Use correct timezone when parsing date in json
chancancode added a commit to chancancode/rails that referenced this pull request Jun 27, 2016
Use correct timezone when parsing date in json
rafaelfranca added a commit that referenced this pull request Jun 27, 2016
rafaelfranca added a commit that referenced this pull request Jun 27, 2016
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

ActiveSupport::JSON.decode Fails Decoding ISO8601 Date/Time String

7 participants