Você pode passar um Locale adicional para java.lang.String.format, bem como para java.io.PrintStream.printf (por exemplo, System.out.printf ()):
import java.util.Locale;
public class PrintfLocales {
public static void main(String args[]) {
System.out.printf("%.2f: Default locale\n", 3.1415926535);
System.out.printf(Locale.GERMANY, "%.2f: Germany locale\n", 3.1415926535);
System.out.printf(Locale.US, "%.2f: US locale\n", 3.1415926535);
}
}
Isso resulta no seguinte (no meu PC):
$ java PrintfLocales
3.14: Default locale
3,14: Germany locale
3.14: US locale
Vejo String.format na API Java.