IMPORTANT
Guidance for errors caused by Windows locale update
In Windows 11 Update 24H2, and equivalent Server updates, the length of the abbreviation for September changed from "Sep" to "Sept". This change aligns with the Unicode CLDR (Common Locale Data Repository) standard, but it has significant impact on many applications including some Jade systems.
We have seen two main kinds of problems so far:
1. Converting a String with "Sept" to a Date (.Date) for the month now gives "*invalid*", e.g."01 Sept 2026".Date will show "*invalid*". This can surface when dates in the new format are converted to dates using primitive type conversion. This means your application may behave differently on different Windows installations.
To determine potential exposure to this problem, we recommend a global search of codebases for all .Date instances where the receiver is a string.
The examples below show what to avoid in method source and the recommended alternatives to ensure your application is locale-aware and remains robust across different locale settings.
Instead of primitive type conversion, use locale-aware conversion methods:
Don't use
theDate := self.txtDate.text.Date;
Instead use
theDate := self.txtDate.getTextAsDate();
theDate.parseForCurrentLocale( self.txtDate.text );
Don't use
self.txtDate.text := theDate.String;
Instead use
self.txtDate.setTextFromDate( theDate );
Don't use
theDate := someString.Date;
Instead use
theDate.parseForCurrentLocale( someString );
2. JadeEditMasks with a mask using the "MMM" pattern will take three or four characters for the month component (depending on the month).
2b. If a thin client on Windows 11 24H2 or higher connects to an app server running pre-24H2, and it uses a JadeEditMask with a mask of "dd MMM yyyy", the edit mask will now be expecting a mask of "dd MMMM yyyy" which will always give invalid dates. This throws an exception 14191 "Invalid month for a JadeEditMask control". This can be mitigated by setting JadeEnvironment.EnhancedLocaleSupport=true in the Jade initialisation file on the app server.
2c. Affecting date input on forms. Systems that have set maxLength to 7 for ddMMMyy fields and 9 for ddMMMccyy fields in Jade Painter can be affected. These will need to be updated to allow for the extra character, and the control widths may also need to be increased (or scrollHorizontal set to true for the TextBox control). Many Jetted forms use tightly constrained field widths with maxLength explicitly set, which makes them particularly susceptible to this change.
For more background on this, read this Q&A on Microsoft's learning platform or or this Stack Overflow thread.