Over the years, I have seen a huge amount of effort and multiple calculated fields to format a date field on a report into a desired format that is something other than the default short date format, usually DD/MM/YYYY or MM/DD/YYYY depending on country (as defined in the control panel).
While you have to admire the efforts that people will go to to get a date displayed in a desired format, it frustrates me that so much effort goes into something that could be so quickly and easily achieved with the RW_DateToString() user defined Report Writer (RW) function.
The RW_DateToString() function is one of a suite of functions that I developed back in 2002 and got added to the core Dynamics.dic application dictionary for versions 7.0 onwards. For details on the other RW functions added, see the post on this blog in the more information section below.
To use the RW_DateToString() function, follow the steps below:
The final Calculated Expression should be something like:
FUNCTION_SCRIPT( RW_DateToString Date "mmmm DD, YYYY" )
For today's date the format string "mmmm DD, YYYY" will produce "August 16, 2010".
The date format template string is a string constant which describes to the RW_DateToString() function how to display the date. Any text can be contained in the string and the following placeholder characters will be substituted with the appropriate:
Date Component Format
day of week as 3 letters
day of week in full
day of year
day of year (padded)
day of month
day of month (padded)
month of year
month of year (padded)
month of year as 3 letters
month of year in full
year of date (2 digits)
year of date (4 digits)
Note: If you want to change the language of the days of the week or the months of the year, please use the Modifier to change Message Resources IDs 12201 onwards and 18618 onwards respectively. These messages are used elsewhere in the application, so changing them here will affect more than just the RW_DateToString() function.
For more information see the posts below:
I hope this saves you lots of time. Enjoy.
Posting from Mark Polino at DynamicAccounting.net
Posting from Vaidy Mohan at Dynamics GP - Learn & Discuss
How would I be able to use this to show the current date (or today's date)?
You can use 'User Date' of globals to obtain the current User Date, RW_SysDate(0) to get today's date from the workstation or RW_SysDate(1) to get today's date from the SQL Server.
Once you have the date as a calculated field you can pass it to the RW_DateToString() function.
PLEASE READ BEFORE POSTING
Please only post comments relating to the topic of this page.
If you wish to ask a technical question, please use the links in the links section (scroll down, on right hand side) to ask on the Newsgroups or Forums. If you ask on the Newsgroups or Forums, others in the community can respond and the answers are available for everyone in the future.