If you use slashes (i.e. 07/08/09), this is interpreted as the US format:
Code:
% date -d07/08/09 +%d-%B-%y
08-July-09
You might try to use dashes instead:
Code:
% date -d07-08-09 +%d-%B-%y
09-August-07
Note that this forces the interpretation of yy-mm-dd. I'm not aware of a way to make date parse strings as dd/mm/yy.
Having said that, it would be easy to translate your European strings into the American format for date. For example:
Code:
% function eudate() {
date -d `echo $1 | perl -p -i -e 's|(\d\d)/(\d\d)/(\d\d)|$2/$1/$3|g'` +%d-%B-%y
}
% eudate 07/08/09
07-August-09