* work correctly unless they manipulate the delegate.
*/
protected DateFormat() {
- this.dateFormat = java.text.DateFormat.getInstance();
+ this.dateFormat = java.text.DateFormat.getDateTimeInstance(
+ java.text.DateFormat.SHORT,
+ java.text.DateFormat.SHORT,
+ ULocale.getDefault(Category.FORMAT).toLocale());
}
/**
*/
public final static DateFormat getTimeInstance()
{
- return new DateFormat(java.text.DateFormat.getTimeInstance());
+ return new DateFormat(java.text.DateFormat.getTimeInstance(
+ java.text.DateFormat.DEFAULT,
+ ULocale.getDefault(Category.FORMAT).toLocale()));
}
/**
*/
public final static DateFormat getTimeInstance(int style)
{
- return new DateFormat(java.text.DateFormat.getTimeInstance(getJDKFormatStyle(style)));
+ return new DateFormat(java.text.DateFormat.getTimeInstance(
+ getJDKFormatStyle(style),
+ ULocale.getDefault(Category.FORMAT).toLocale()));
}
/**
*/
public final static DateFormat getDateInstance()
{
- return new DateFormat(java.text.DateFormat.getDateInstance());
+ return new DateFormat(java.text.DateFormat.getDateInstance(
+ java.text.DateFormat.DEFAULT,
+ ULocale.getDefault(Category.FORMAT).toLocale()));
}
/**
*/
public final static DateFormat getDateInstance(int style)
{
- return new DateFormat(java.text.DateFormat.getDateInstance(getJDKFormatStyle(style)));
+ return new DateFormat(java.text.DateFormat.getDateInstance(
+ getJDKFormatStyle(style),
+ ULocale.getDefault(Category.FORMAT).toLocale()));
}
/**
*/
public final static DateFormat getDateTimeInstance()
{
- return new DateFormat(java.text.DateFormat.getDateTimeInstance());
+ return new DateFormat(java.text.DateFormat.getDateTimeInstance(
+ java.text.DateFormat.DEFAULT,
+ java.text.DateFormat.DEFAULT,
+ ULocale.getDefault(Category.FORMAT).toLocale()));
}
/**
{
if (dateStyle != NONE) {
if (timeStyle != NONE) {
- return new DateFormat(java.text.DateFormat.getDateTimeInstance(getJDKFormatStyle(dateStyle), getJDKFormatStyle(timeStyle)));
+ return new DateFormat(java.text.DateFormat.getDateTimeInstance(
+ getJDKFormatStyle(dateStyle),
+ getJDKFormatStyle(timeStyle),
+ ULocale.getDefault(Category.FORMAT).toLocale()));
} else {
- return new DateFormat(java.text.DateFormat.getDateInstance(getJDKFormatStyle(dateStyle)));
+ return new DateFormat(java.text.DateFormat.getDateInstance(
+ getJDKFormatStyle(dateStyle),
+ ULocale.getDefault(Category.FORMAT).toLocale()));
}
}
if (timeStyle != NONE) {
- return new DateFormat(java.text.DateFormat.getTimeInstance(getJDKFormatStyle(timeStyle)));
+ return new DateFormat(java.text.DateFormat.getTimeInstance(
+ getJDKFormatStyle(timeStyle),
+ ULocale.getDefault(Category.FORMAT).toLocale()));
}
return null;
}
* @stable ICU 2.0
*/
public final static DateFormat getInstance() {
- return new DateFormat(java.text.DateFormat.getInstance());
+ return new DateFormat(java.text.DateFormat.getDateTimeInstance(
+ java.text.DateFormat.SHORT,
+ java.text.DateFormat.SHORT,
+ ULocale.getDefault(Category.FORMAT).toLocale()));
}
/**
* @stable ICU 2.0
*/
static final public DateFormat getTimeInstance(Calendar cal, int timeStyle) {
- return getTimeInstance(cal, timeStyle, Locale.getDefault());
+ return getTimeInstance(cal, timeStyle, ULocale.getDefault(Category.FORMAT));
}
/**
import java.text.CharacterIterator;
import java.text.FieldPosition;
import java.text.ParsePosition;
+import java.util.Locale;
import java.util.Map;
import java.util.Map.Entry;
import com.ibm.icu.math.MathContext;
import com.ibm.icu.util.Currency;
import com.ibm.icu.util.CurrencyAmount;
+import com.ibm.icu.util.ULocale;
+import com.ibm.icu.util.ULocale.Category;
/**
* {@icuenhanced java.text.DecimalFormat}.{@icu _usage_}
* @stable ICU 2.0
*/
public DecimalFormat() {
+ // There is no way to construct java.text.DecimalFormat with an
+ // explicit Locale.
this(new java.text.DecimalFormat());
+
+ if (!ULocale.getDefault(Category.FORMAT).toLocale().equals(Locale.getDefault())) {
+ // On Java 6 or older JRE, ULocale's FORMAT default might be different
+ // from the locale used for constructing java.text.DecimalFormat
+ java.text.NumberFormat jdkNfmt = java.text.NumberFormat.getInstance(ULocale.getDefault(Category.FORMAT).toLocale());
+ if (jdkNfmt instanceof java.text.DecimalFormat) {
+ ((java.text.DecimalFormat)numberFormat).applyPattern(((java.text.DecimalFormat)jdkNfmt).toPattern());
+ ((java.text.DecimalFormat)numberFormat).setDecimalFormatSymbols(((java.text.DecimalFormat)jdkNfmt).getDecimalFormatSymbols());
+ }
+ }
}
/**
* @stable ICU 2.0
*/
public DecimalFormat(String pattern) {
- this(new java.text.DecimalFormat(pattern));
+ this(new java.text.DecimalFormat(
+ pattern,
+ new java.text.DecimalFormatSymbols(ULocale.getDefault(Category.FORMAT).toLocale())));
}
/**