The goal is to improve the dates utility functions (parse/format) by removing the timezone option, which is difficult to understand and has proven to be error prone. - Rationale When manipulating DateTime objects on the JS side, associated timezones must be always coherent. Until now, there were several code parts that had to check the DateTime timezone and handle things differently in a case or another. This sometimes lead to wrong code. E.g. there was a bug in the DatePicker component because the DateTime object it receives in props is in local timezone, but once it updates it through the parse utility, the new object is in UTC. - After this commit The DateTime objects you'll get through deserialization or parsing are always set in the user's local timezone. The formatted strings you'll get through formatDate and formatDateTime utils will always be expressed in the user's local timezone. The formatted strings you'll get through serialization utils will always be expressed in UTC. - serializeDate and serializeDateTime - expected input: a DateTime object (its timezone does not matter) - outputs: a string formatted for the server expressed in UTC - formatDate and formatDateTime - expected input: a DateTime object (its timezone does not matter) - outputs: a string formatted for the user, expressed in the user's TZ - deserializeDate and deserializeDateTime - expected input: a date(time) string provided by the server, in UTC - outputs: a DateTime object in user's TZ - parseDate and parseDateTime - expected input: a date(time) string provided by the user, in its TZ - outputs: a DateTime object in user's TZ - Other changes in this commit As the timezone option has been removed from parsing/formatting utils, all their usage had been adapted in the codebase. The large diff in dates_tests.js is because some tests were reorganized, others were removed/adapted/joined. A test has been removed from daterange_field_tests.js, because it has no sense: it displays a date field as a datetime, but a date field does not have any time information. Part-of: odoo/odoo#98980 Co-authored-by: Julien Mougenot <jum@odoo.com>
Odoo Enterprise Social Network
Connect with experts, follow what interests you, share documents and promote best practices with Odoo Enterprise Social Network. Get work done with effective collaboration across departments, geographies, documents and business applications. All of this while decreasing email overload.
Connect with experts
Next time you have a question for the marketing, sales, R&D or any other department, don't send an email blast-post the question to Odoo and get answers from the right persons.
Follow what interests you
Want to get informed about new product features, hot deals, bottlenecks in projects or any other event? Just follow what interests you to get the information you need what you need; no more, no less.
Get Things Done
You can process (not only read) the inbox and easily mark messages for future actions. Start feeling the pleasure of having an empty inbox every day; no more overload of information.
Promote best practices
Cut back on meetings and email chains by working together in groups of interests. Create a group to let people share files, discuss ideas, and vote to promote best practices.
Improve Access to Information and Expertise
Break down information silos. Search across your existing systems to find the answers and expertise you need to complete projects quickly.
Collaborate securely
Set the right security policy; public, private or on invitation only -- according to the information sensitivity.
A Twitter-like Network For My Company
Make every employee feel more connected and engaged with twitter-like features for your own company. Follow people, share best practices, 'like' top ideas, etc.