Idea Summary
Improve the OutSystems Date Picker component to handle DateTime values more accurately and consistently by introducing timezone-aware options and ensuring correct date selection behavior across all data types.
Issue Description
The current behavior of the Date Picker in OutSystems is inconsistent depending on the data type it is bound to:
When bound to a Date type, the selected date is passed and stored correctly.
When bound to a DateTime type, the selected date often shifts to one day earlier than expected.
This issue appears to stem from server-side time zone conversion, and it becomes particularly problematic in global applications, where users in different time zones experience inconsistent results.
Key Improvements Needed
Consistent Handling of selected date values regardless of whether the field is Date or DateTime.
Time Zone Awareness to avoid unintended shifts due to UTC or server time assumptions.
Developer Control via an optional toggle or setting in the Date Picker to treat DateTime values as local dates by default.
Suggested Enhancements
Add a "Treat as Local DateTime" option in the Date Picker widget settings.
Ensure that when a date is selected, it reflects midnight of the selected day in the local time zone unless explicitly configured otherwise.
Provide clear documentation or tooltip guidance within the widget for Date vs DateTime behavior.
Impact of the Issue
Off-by-one-day errors when storing or displaying selected dates.
Increased debugging effort due to non-obvious time zone conversions.
Reduced trust in date handling for end users, especially in global or multi-regional apps.
Higher complexity in development when working with DateTime fields that should behave like Dates.
Benefits of the Enhancement
Eliminates unexpected date shifts and off-by-one-day errors.
Simplifies development and reduces debugging time for apps using DateTime.
Improves accuracy and reliability of date-related data across different regions.
Enhances the user experience with a more intuitive and predictable Date Picker.
Supports global applications where proper time zone handling is essential.