If you omit the locale, then the XSLT defaults to the installation language of the XSLT processor you're using, the 1.0 one. (MS XSL Utility msxsl.exe or Visual Studio etc.) Doesn't matter what is the locale of the browser or your asp.net application.
In order to make it locale aware with least effort, you need to declare a variable (say with value "EN_us") and use it as the third parameter in all such date, time, number formatting functions.