This module creates ordinal numbers from plain ones ( "3 -> 3rd" ).
I was a little surprised not to find this functionality in DateTime or even the strftime man page. However, I suppose the sticking point is that is language-specific.
Whatever the reason, this module provided a simple function that did the job for me. Except for the long name I'll have difficulty remembering, I'm happy.