I used to have a very similar problem years ago, and then discovered that I can do
ALTER DATABASE database_name SET datestyle TO "ISO, MDY";
Try that. (This works on a per database basis, for a solution for all of your databases see @a_horse_with_no_name's commment below.)
EDIT:
Unfortunately, I cannot test other locales, but @swasheck's comment made me note that with my settings:
test=# SHOW lc_ctype;
lc_ctype
--------------------
Hungarian, Hungary
(1 row)
test=# SHOW lc_time;
lc_time
--------------------
Hungarian, Hungary
(1 row)
setting datestyle has the following effect:
SET datestyle TO "ISO, MDY";
SELECT current_date;
date
------------
2012-06-21
(1 row)
SET datestyle TO "ISO, YMD";
SELECT current_date;
date
------------
2012-06-21
(1 row)
SET datestyle TO "postgres, MDY";
SELECT current_date;
date
------------
06-21-2012
(1 row)
Apparently, the locale has an effect on these settings.