private static final String getRealFormat( String pattern, Locale locale, String dateStyle, String timeStyle) { int ts, ds; if (pattern.isEmpty()) pattern = null; ds = toStyle(dateStyle); if (ds != -111) { ts = toStyle(timeStyle); if (ts != -111) { return DateFormats.getDateTimeFormat(ds, ts, locale, pattern); } return DateFormats.getDateFormat(ds, locale, pattern); } return pattern != null ? pattern : "M/d/yy"; }
/** * Returns the real format, i.e., the combination of the format patterns, such as yyyy-MM-dd. * * <p>As described in {@link #setFormat}, a developer could specify an abstract name, such as * short, or an empty string as the format, and this method will convert it to a real date/time * format. * * @since 5.0.7 */ public String getRealFormat() { final String format = getFormat(); if (format == null || format.length() == 0) return getDefaultFormat(); // backward compatible int ds = format.indexOf('+'); if (ds > 0) { int ts = toStyle(format.substring(ds + 1)); if (ts != -111) { ds = toStyle(format.substring(0, ds)); if (ds != -111) return DateFormats.getDateTimeFormat( ds, ts, _locale, DEFAULT_FORMAT + " " + Timebox.DEFAULT_FORMAT); } } else { ds = toStyle(format); if (ds != -111) return DateFormats.getDateFormat(ds, _locale, DEFAULT_FORMAT); } return format; }
/** * Returns the default format, which is used when constructing a datebox, or when {@link * #setFormat} is called with null or empty. * * <p>Default: DateFormats.getDateFormat(DEFAULT, null, "yyyy/MM/dd") (see {@link * DateFormats#getDateFormat}). * * <p>Though you might override this method to provide your own default format, it is suggested to * specify the format for the current thread with {@link DateFormats#setLocalFormatInfo}. */ protected String getDefaultFormat() { return DateFormats.getDateFormat(DateFormat.DEFAULT, _locale, DEFAULT_FORMAT); // We use yyyy/MM/dd for backward compatibility }