Great article Lorna. Welcome to strftime() ;-)

To take Maarten’s warning one step further:
The issue he is refering to is using set_locale() with LC_ALL as the category which is not just inconvenient/confusing with the floating point numbers, but can actually be very dangerous if some of your variable validation code uses CTYPE functions as CTYPE is locale aware as well.

Lorna’s example code where she sets locale specifically for the LC_TIME category *only* however is spot on and will avoid these problems.