Maybe this is best kept to a extension or manual hack for those users who desire international date formatting. I'll consider this completed when it's in the wiki.
Perhaps Max_B has some input? I recall he contributed a bunch of translation ideas for Vanilla 1.
About setting locales: Yes it is platform dependent. I stay away of windows servers, so I have no input. Even on 'nix there are two brands:
On BSD'ish (OS X), the LANG env variable is used, the setlocale() function has (had? not checked recently) no effect (does'nt harm anyway). Setting the LANG variable require the putenv() function which is sometimes disabled. Also the LANG variable must be writable.
On linux the LANG variable is not used. The setlocale() function does the job. The target language must be installed on the system (most are in standard distribution, but not always). Then comes the trap of locale string format: the php setlocale use 'fr_FR' OR 'fr_fr' (depending of the implementation) format where IANA format id fr-FR r fr-fr. So to set the locale to French you should use setlocale(array('fr', 'fr_fr', 'fr_FR')), just to be sure.
Date format: The dat() function used in the core does not use locale but for single language forum it's not a problem. One just need to set up the date format in the language file. strftime() is a good move. To ensure backward compatibility we need to write a simple transcoding function for the format string from the date() format to the strftime(). Only a few codes are widely used so it is not big stuff.
Side note: Now that I'm using Zend framework for all my development I get rid of those headaches, for locale format as well as translation. Zend supersede the basic php functions, with gettext-like translation functionality without portability issues and a bunch of localization functions for date number and the like. I already suggested to Mark to use it for vanilla 2, not sure he will.