Not so much an article but something which is very useful. If you are coding in X++ this is a function you will use a lot. If you don't provide the correct or valid values to the formatting parameters if the specified values are not valid.
To use the date format that the user specified in Regional Settings, use the strFmt or date2Str function with -1 in all the formatting parameters. When the regional settings control the date format, the settings can change from user to user. If -1 is used for either separator parameter, both separators default to Regional Settings.
The sequence parameter values must be any three digit number that contains exactly one occurrence of each digit 1, 2 and 3. The digits 1-2-3 represent day-month-year respectively. For example, 321 would produce the sequence of year, month, and day. Or the value can be -1 to use Regional Settings. No enumeration type should be used for this parameter, because numbers like 321 exceed the range of valid values for enumeration values, which is 0 through 250 inclusive.
The default value of the Flags parameter is the DateFlags::None enumeration value, which means no left-to-right or right-to-left sequence processing is performed.
Here is the description of the function and also a couple of examples on how to implement.
str date2Str( date date, int sequence, int day, int separator1, int month, int separator2, int year [, int flags = DateFlags::None])
Parameter
|
Description
|
---|---|
date
|
The date to convert.
|
sequence
|
A three digit number that indicates the sequence for the components of the date, 1 for day, 2 for month, and 3 for year.
|
day
|
A DateDay enumeration value that indicates the format for the day component of the date.
|
separator1
|
A DateSeparator enumeration value that indicates the separator to use between the first two components of the date.
|
month
|
A DateMonth enumeration value that indicates the format for the month component of the date.
|
separator2
|
A DateSeparator enumeration value that indicates the separator to use between the last two components of the date.
|
year
|
A DateYear enumeration value that indicates the format for the year component of the date.
|
flags
|
A DateFlags enumeration value that indicates whether the language settings on the local computer should be used to calculate the proper left-to-right or right-to-left sequence in the returned string.
|
{ date currentDate = today(); str s; int iEnum; ; s = date2Str (currentDate, 321, DateDay::Digits2, DateSeparator::Hyphen, // separator1 DateMonth::Digits2, DateSeparator::Hyphen, // separator2 DateYear::Digits4 ); info("Today is: " + s); } /** Example Infolog output Message (12:36:21 pm) Today is: 2009-01-13 **/