This is the mail archive of the java-patches@gcc.gnu.org mailing list for the Java project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Patch: FYI: re-merge DateFormat


I'm checking this in.

There's no very good reason to have our own DateFormat.

Tom

Index: ChangeLog
from  Tom Tromey  <tromey@redhat.com>
	* sources.am, Makefile.in: Rebuilt.
	* java/text/DateFormat.java: Removed.

Index: java/text/DateFormat.java
===================================================================
--- java/text/DateFormat.java	(revision 113735)
+++ java/text/DateFormat.java	(working copy)
@@ -1,924 +0,0 @@
-/* DateFormat.java -- Class for formatting/parsing date/times
-   Copyright (C) 1998, 1999, 2000, 2001, 2003, 2004, 2005
-   Free Software Foundation, Inc.
-
-This file is part of GNU Classpath.
-
-GNU Classpath is free software; you can redistribute it and/or modify
-it under the terms of the GNU General Public License as published by
-the Free Software Foundation; either version 2, or (at your option)
-any later version.
- 
-GNU Classpath is distributed in the hope that it will be useful, but
-WITHOUT ANY WARRANTY; without even the implied warranty of
-MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-General Public License for more details.
-
-You should have received a copy of the GNU General Public License
-along with GNU Classpath; see the file COPYING.  If not, write to the
-Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
-02110-1301 USA.
-
-Linking this library statically or dynamically with other modules is
-making a combined work based on this library.  Thus, the terms and
-conditions of the GNU General Public License cover the whole
-combination.
-
-As a special exception, the copyright holders of this library give you
-permission to link this library with independent modules to produce an
-executable, regardless of the license terms of these independent
-modules, and to copy and distribute the resulting executable under
-terms of your choice, provided that you also meet, for each linked
-independent module, the terms and conditions of the license of that
-module.  An independent module is a module which is not derived from
-or based on this library.  If you modify this library, you may extend
-this exception to your version of the library, but you are not
-obligated to do so.  If you do not wish to do so, delete this
-exception statement from your version. */
-
-
-package java.text;
-
-import java.io.InvalidObjectException;
-import java.util.Calendar;
-import java.util.Date;
-import java.util.Locale;
-import java.util.MissingResourceException;
-import java.util.ResourceBundle;
-import java.util.TimeZone;
-
-/**
- * @author Per Bothner (bothner@cygnus.com)
- * @date October 25, 1998.
- */
-/* Written using "Java Class Libraries", 2nd edition, plus online
- * API docs for JDK 1.2 beta from http://www.javasoft.com.
- * Status:  Mostly complete; search for FIXME to see omissions.
- */
-
-public abstract class DateFormat extends Format implements Cloneable
-{
-  private static final long serialVersionUID = 7218322306649953788L;
-
-  // Names fixed by serialization spec.
-  protected Calendar calendar;
-  protected NumberFormat numberFormat;
-
-  // (Values determined using a test program.)
-  public static final int FULL = 0;
-  public static final int LONG = 1;
-  public static final int MEDIUM = 2;
-  public static final int SHORT = 3;
-  public static final int DEFAULT = MEDIUM;
-
-  /* These constants need to have these exact values.  They
-   * correspond to index positions within the localPatternChars
-   * string for a given locale.  Each locale may specify its
-   * own character for a particular field, but the position
-   * of these characters must correspond to an appropriate field
-   * number (as listed below), in order for their meaning to
-   * be determined.  For example, the US locale uses
-   * the string "GyMdkHmsSEDFwWahKzYeugAZ", where 'G' is the character
-   * for era, 'y' for year, and so on down to 'Z' for time zone.
-   */
-  /**
-   * Represents the position of the era
-   * pattern character in the array of
-   * localized pattern characters. 
-   * For example, 'AD' is an era used
-   * in the Gregorian calendar system.
-   * In the U.S. locale, this is 'G'.
-   */  
-  public static final int ERA_FIELD = 0;
-  /**
-   * Represents the position of the year
-   * pattern character in the array of
-   * localized pattern characters.
-   * In the U.S. locale, this is 'y'.
-   */
-  public static final int YEAR_FIELD = 1;
-  /**
-   * Represents the position of the month
-   * pattern character in the array of
-   * localized pattern characters.
-   * In the U.S. locale, this is 'M'.
-   */
-  public static final int MONTH_FIELD = 2;
-  /**
-   * Represents the position of the date
-   * or day of the month pattern character
-   * in the array of localized pattern
-   * characters.  In the U.S. locale,
-   * this is 'd'.
-   */
-  public static final int DATE_FIELD = 3;
-  /**
-   * Represents the position of the 24
-   * hour pattern character in the array of
-   * localized pattern characters.
-   * In the U.S. locale, this is 'k'.
-   * This field numbers hours from 1 to 24.
-   */
-  public static final int HOUR_OF_DAY1_FIELD = 4;
-  /**
-   * Represents the position of the 24
-   * hour pattern character in the array of
-   * localized pattern characters.
-   * In the U.S. locale, this is 'H'.
-   * This field numbers hours from 0 to 23.
-   */
-  public static final int HOUR_OF_DAY0_FIELD = 5;
-  /**
-   * Represents the position of the minute
-   * pattern character in the array of
-   * localized pattern characters.
-   * In the U.S. locale, this is 'm'.
-   */
-  public static final int MINUTE_FIELD = 6;
-  /**
-   * Represents the position of the second
-   * pattern character in the array of
-   * localized pattern characters.
-   * In the U.S. locale, this is 's'.
-   */
-  public static final int SECOND_FIELD = 7;
-  /**
-   * Represents the position of the millisecond
-   * pattern character in the array of
-   * localized pattern characters.
-   * In the U.S. locale, this is 'S'.
-   */
-  public static final int MILLISECOND_FIELD = 8;
-  /**
-   * Represents the position of the day of the
-   * week pattern character in the array of
-   * localized pattern characters.
-   * In the U.S. locale, this is 'E'.
-   */
-  public static final int DAY_OF_WEEK_FIELD = 9;
-  /**
-   * Represents the position of the day of the
-   * year pattern character in the array of
-   * localized pattern characters.
-   * In the U.S. locale, this is 'D'.
-   */
-  public static final int DAY_OF_YEAR_FIELD = 10;
-  /**
-   * Represents the position of the day of the
-   * week in the month pattern character in the
-   * array of localized pattern characters.
-   * In the U.S. locale, this is 'F'.
-   */
-  public static final int DAY_OF_WEEK_IN_MONTH_FIELD = 11;
-  /**
-   * Represents the position of the week of the
-   * year pattern character in the array of
-   * localized pattern characters.
-   * In the U.S. locale, this is 'w'.
-   */
-  public static final int WEEK_OF_YEAR_FIELD = 12;
-  /**
-   * Represents the position of the week of the
-   * month pattern character in the array of
-   * localized pattern characters.
-   * In the U.S. locale, this is 'W'.
-   */
-  public static final int WEEK_OF_MONTH_FIELD = 13;
-  /**
-   * Represents the position of the am/pm
-   * pattern character in the array of
-   * localized pattern characters.
-   * In the U.S. locale, this is 'a'.
-   */
-  public static final int AM_PM_FIELD = 14;
-  /**
-   * Represents the position of the 12 
-   * hour pattern character in the array of
-   * localized pattern characters.
-   * In the U.S. locale, this is 'h'.
-   * This field numbers hours from 1 to 12.
-   */
-  public static final int HOUR1_FIELD = 15;
-  /**
-   * Represents the position of the 12 
-   * hour pattern character in the array of
-   * localized pattern characters.
-   * In the U.S. locale, this is 'K'.
-   * This field numbers hours from 0 to 11.
-   */
-  public static final int HOUR0_FIELD = 16;
-  /**
-   * Represents the position of the generic
-   * timezone pattern character in the array of
-   * localized pattern characters.
-   * In the U.S. locale, this is 'z'.
-   */
-  public static final int TIMEZONE_FIELD = 17;
-  /**
-   * Represents the position of the ISO year
-   * pattern character in the array of
-   * localized pattern characters.
-   * In the U.S. locale, this is 'Y'.
-   * This is a GNU extension in accordance with
-   * the CLDR data used.  This value may
-   * differ from the normal year value.
-   */
-  public static final int ISO_YEAR_FIELD = 18;
-  /**
-   * Represents the position of the localized
-   * day of the week pattern character in the
-   * array of localized pattern characters.
-   * In the U.S. locale, this is 'e'.
-   * This is a GNU extension in accordance with
-   * the CLDR data used.  This value only
-   * differs from the day of the week with
-   * numeric formatting, in which case the
-   * locale's first day of the week is used.
-   */
-  public static final int LOCALIZED_DAY_OF_WEEK_FIELD = 19;
-  /**
-   * Represents the position of the extended year
-   * pattern character in the array of
-   * localized pattern characters.
-   * In the U.S. locale, this is 'u'.
-   * This is a GNU extension in accordance with
-   * the CLDR data used.  This value modifies
-   * the year value, so as to incorporate the era.
-   * For example, in the Gregorian calendar system,
-   * the extended year is negative instead of being
-   * marked as BC.
-   */
-  public static final int EXTENDED_YEAR_FIELD = 20;
-  /**
-   * Represents the position of the modified Julian
-   * day pattern character in the array of
-   * localized pattern characters.
-   * In the U.S. locale, this is 'g'.
-   * This is a GNU extension in accordance with
-   * the CLDR data used.  This value differs
-   * from the standard Julian day in that days
-   * are marked from midnight onwards rather than
-   * noon, and the local time zone affects the value.
-   * In simple terms, it can be thought of as all
-   * the date fields represented as a single number.
-   */
-  public static final int MODIFIED_JULIAN_DAY_FIELD = 21;
-  /**
-   * Represents the position of the millisecond
-   * in the day pattern character in the array of
-   * localized pattern characters.
-   * In the U.S. locale, this is 'A'.
-   * This is a GNU extension in accordance with
-   * the CLDR data used.  This value represents
-   * all the time fields (excluding the time zone)
-   * numerically, giving the number of milliseconds
-   * into the day (e.g. 10 in the morning would
-   * be 10 * 60 * 60 * 1000).  Any daylight savings
-   * offset also affects this value.
-   */
-  public static final int MILLISECOND_IN_DAY_FIELD = 22;
-  /**
-   * Represents the position of the RFC822
-   * timezone pattern character in the array of
-   * localized pattern characters.
-   * In the U.S. locale, this is 'Z'.
-   * This is a GNU extension in accordance with
-   * the CLDR data used.  The value is the offset
-   * of the current time from GMT e.g. -0500 would
-   * be five hours prior to GMT.
-   */
-  public static final int RFC822_TIMEZONE_FIELD = 23;
-
-  public static class Field extends Format.Field
-  {
-    static final long serialVersionUID = 7441350119349544720L;
-    
-    private int calendarField;
-
-    public static final DateFormat.Field ERA
-	= new Field("era", Calendar.ERA);
-    public static final DateFormat.Field YEAR
-	= new Field("year", Calendar.YEAR);
-    public static final DateFormat.Field MONTH
-	= new Field("month", Calendar.MONTH);
-    public static final DateFormat.Field DAY_OF_MONTH
-	= new Field("day of month", Calendar.DAY_OF_MONTH);
-    public static final DateFormat.Field HOUR_OF_DAY1
-	= new Field("hour of day 1", Calendar.HOUR_OF_DAY);
-    public static final DateFormat.Field HOUR_OF_DAY0
-	= new Field("hour of day 0", Calendar.HOUR_OF_DAY);
-    public static final DateFormat.Field MINUTE
-	= new Field("minute", Calendar.MINUTE);
-    public static final DateFormat.Field SECOND
-	= new Field("second", Calendar.SECOND);
-    public static final DateFormat.Field MILLISECOND
-	= new Field("millisecond", Calendar.MILLISECOND);
-    public static final DateFormat.Field DAY_OF_WEEK
-	= new Field("day of week", Calendar.DAY_OF_WEEK);
-    public static final DateFormat.Field DAY_OF_YEAR
-	= new Field("day of year", Calendar.DAY_OF_YEAR);
-    public static final DateFormat.Field DAY_OF_WEEK_IN_MONTH
-	= new Field("day of week in month", Calendar.DAY_OF_WEEK_IN_MONTH);
-    public static final DateFormat.Field WEEK_OF_YEAR
-	= new Field("week of year", Calendar.WEEK_OF_YEAR);
-    public static final DateFormat.Field WEEK_OF_MONTH
-	= new Field("week of month", Calendar.WEEK_OF_MONTH);
-    public static final DateFormat.Field AM_PM
-	= new Field("am/pm", Calendar.AM_PM);
-    public static final DateFormat.Field HOUR1
-	= new Field("hour1", Calendar.HOUR);
-    public static final DateFormat.Field HOUR0
-	= new Field("hour0", Calendar.HOUR);
-    public static final DateFormat.Field TIME_ZONE
-	= new Field("timezone", Calendar.ZONE_OFFSET);
-    public static final DateFormat.Field ISO_YEAR
-	= new Field("iso year", Calendar.YEAR);
-    public static final DateFormat.Field LOCALIZED_DAY_OF_WEEK
-	= new Field("localized day of week", Calendar.DAY_OF_WEEK);
-    public static final DateFormat.Field EXTENDED_YEAR
-      = new Field("extended year", Calendar.YEAR);
-    public static final DateFormat.Field MODIFIED_JULIAN_DAY
-	= new Field("julian day", -1);
-    public static final DateFormat.Field MILLISECOND_IN_DAY
-	= new Field("millisecond in day", -1);
-    public static final DateFormat.Field RFC822_TIME_ZONE
-	= new Field("rfc822 timezone", Calendar.ZONE_OFFSET);
-
-    static final DateFormat.Field[] allFields =
-    {
-      ERA, YEAR, MONTH, DAY_OF_MONTH, HOUR_OF_DAY1,
-      HOUR_OF_DAY0, MINUTE, SECOND, MILLISECOND,
-      DAY_OF_WEEK, DAY_OF_YEAR, DAY_OF_WEEK_IN_MONTH,
-      WEEK_OF_YEAR, WEEK_OF_MONTH, AM_PM, HOUR1, HOUR0,
-      TIME_ZONE, ISO_YEAR, LOCALIZED_DAY_OF_WEEK,
-      EXTENDED_YEAR, MODIFIED_JULIAN_DAY, MILLISECOND_IN_DAY,
-      RFC822_TIME_ZONE
-    };
-
-    // For deserialization
-    private Field()
-    {
-      super("");
-    }
-
-    protected Field(String name, int calendarField)
-    {
-      super(name);
-      this.calendarField = calendarField;
-    }
-    
-    public int getCalendarField()
-    {
-      return calendarField;
-    }
-
-    public static Field ofCalendarField(int calendarField)
-    {
-      if (calendarField >= allFields.length || calendarField < 0)
-	throw new IllegalArgumentException("no such calendar field ("
-					   + calendarField + ")");
-      
-      return allFields[calendarField];
-    }
-    
-    protected Object readResolve() throws InvalidObjectException
-    {
-      String s = getName();
-
-      for (int i=0;i<allFields.length;i++)
-	if (s.equals(allFields[i].getName()))
-	  return allFields[i];
-      
-      throw new InvalidObjectException("no such DateFormat field called " + s);
-    }
-  }
-
-  /**
-   * This method initializes a new instance of <code>DateFormat</code>.
-   */
-  protected DateFormat ()
-  {
-  }
-
-  /**
-   * This method tests this object for equality against the specified object.
-   * The two objects will be considered equal if an only if the specified
-   * object:
-   * <P>
-   * <ul>
-   * <li>Is not <code>null</code>.</li>
-   * <li>Is an instance of <code>DateFormat</code>.</li>
-   * <li>Has equal numberFormat field as this object.</li>
-   * <li>Has equal (Calendar) TimeZone rules as this object.</li>
-   * <li>Has equal (Calendar) isLenient results.</li> 
-   * <li>Has equal Calendar first day of week and minimal days in week
-   * values.</li>
-   * </ul>
-   * Note that not all properties of the Calendar are relevant for a
-   * DateFormat. For formatting only the fact whether or not the
-   * TimeZone has the same rules and whether the calendar is lenient
-   * and has the same week rules is compared for this implementation
-   * of equals. Other properties of the Calendar (such as the time)
-   * are not taken into account.
-   *
-   * @param obj The object to test for equality against.
-   * 
-   * @return <code>true</code> if the specified object is equal to this object,
-   * <code>false</code> otherwise.
-   */
-  public boolean equals (Object obj)
-  {
-    if (!(obj instanceof DateFormat))
-      return false;
-
-    DateFormat d = (DateFormat) obj;
-    TimeZone tz = getTimeZone();
-    TimeZone tzd = d.getTimeZone();
-    if (tz.hasSameRules(tzd))
-      if (isLenient() == d.isLenient())
-	{
-	  Calendar c = getCalendar();
-	  Calendar cd = d.getCalendar();
-	  if ((c == null && cd == null)
-	      ||
-	      (c.getFirstDayOfWeek() == cd.getFirstDayOfWeek()
-	       &&
-	       c.getMinimalDaysInFirstWeek()
-	       == cd.getMinimalDaysInFirstWeek()))
-	    return ((numberFormat == null && d.numberFormat == null)
-		    || numberFormat.equals(d.numberFormat));
-	}
-
-    return false;
-  }
-
-  /**
-   * This method returns a copy of this object.
-   *
-   * @return A copy of this object.
-   */
-  public Object clone ()
-  {
-    // We know the superclass just call's Object's generic cloner.
-    return super.clone ();
-  }
-
-  /**
-   * This method formats the specified <code>Object</code> into a date string
-   * and appends it to the specified <code>StringBuffer</code>.
-   * The specified object must be an instance of <code>Number</code> or
-   * <code>Date</code> or an <code>IllegalArgumentException</code> will be
-   * thrown.
-   *
-   * @param obj The <code>Object</code> to format.
-   * @param buf The <code>StringBuffer</code> to append the resultant
-   * <code>String</code> to.
-   * @param pos Is updated to the start and end index of the
-   * specified field.
-   *
-   * @return The <code>StringBuffer</code> supplied on input, with the
-   * formatted date/time appended.
-   */
-  public final StringBuffer format (Object obj,
-				    StringBuffer buf, FieldPosition pos)
-  {
-    if (obj instanceof Number)
-      obj = new Date(((Number) obj).longValue());
-    else if (! (obj instanceof Date))
-      throw new IllegalArgumentException
-	("Cannot format given Object as a Date");
-
-    return format ((Date) obj, buf, pos);
-  }
-
-  /**  
-    * Formats the date argument according to the pattern specified. 
-    *
-    * @param date The formatted date.
-    */
-  public final String format (Date date)
-  {
-    StringBuffer sb = new StringBuffer ();
-    format (date, sb, new FieldPosition (MONTH_FIELD));
-    return sb.toString();
-  }
-
-  /**
-   * This method formats a <code>Date</code> into a string and appends it
-   * to the specified <code>StringBuffer</code>.
-   *
-   * @param date The <code>Date</code> value to format.
-   * @param buf The <code>StringBuffer</code> to append the resultant
-   * <code>String</code> to.
-   * @param pos Is updated to the start and end index of the
-   * specified field.
-   *
-   * @return The <code>StringBuffer</code> supplied on input, with the
-   * formatted date/time appended.
-   */
-  public abstract StringBuffer format (Date date,
-				       StringBuffer buf, FieldPosition pos);
-
-  /**
-   * This method returns a list of available locales supported by this
-   * class.
-   */
-  public static Locale[] getAvailableLocales()
-  {
-    // FIXME
-    Locale[] l = new Locale[1];
-    l[0] = Locale.US;
-    return l;
-  }
-
-  /**
-    * This method returns the <code>Calendar</code> object being used by
-    * this object to parse/format datetimes.
-    *
-    * @return The <code>Calendar</code> being used by this object.
-    *
-    * @see java.util.Calendar
-    */
-  public Calendar getCalendar ()
-  {
-    return calendar;
-  }
-
-  private static DateFormat computeInstance (int style, Locale loc,
-                                             boolean use_date, boolean use_time)
-  {
-    return computeInstance (style, style, loc, use_date, use_time);
-  }
-
-  private static DateFormat computeInstance (int dateStyle, int timeStyle,
-                                             Locale loc, boolean use_date,
-                                             boolean use_time)
-  {
-    ResourceBundle res;
-    try
-      {
-	res = ResourceBundle.getBundle("gnu.java.locale.LocaleInformation",
-				       loc, ClassLoader.getSystemClassLoader());
-      }
-    catch (MissingResourceException x)
-      {
-	res = null;
-      }
-
-    String pattern = null;
-    if (use_date)
-      {
-	String name, def;
-	switch (dateStyle)
-	  {
-	  case FULL:
-	    name = "fullDateFormat";
-	    def = "EEEE MMMM d, yyyy G";
-	    break;
-	  case LONG:
-	    name = "longDateFormat";
-	    def = "MMMM d, yyyy";
-	    break;
-	  case MEDIUM:
-	    name = "mediumDateFormat";
-	    def = "d-MMM-yy";
-	    break;
-	  case SHORT:
-	    name = "shortDateFormat";
-	    def = "M/d/yy";
-	    break;
-	  default:
-	    throw new IllegalArgumentException ();
-	  }
-	try
-	  {
-	    pattern = res == null ? def : res.getString(name);
-	  }
-	catch (MissingResourceException x)
-	  {
-	    pattern = def;
-	  }
-      }
-
-    if (use_time)
-      {
-	if (pattern == null)
-	  pattern = "";
-	else
-	  pattern += " ";
-
-	String name, def;
-	switch (timeStyle)
-	  {
-	  case FULL:
-	    name = "fullTimeFormat";
-	    def = "h:mm:ss;S 'o''clock' a z";
-	    break;
-	  case LONG:
-	    name = "longTimeFormat";
-	    def = "h:mm:ss a z";
-	    break;
-	  case MEDIUM:
-	    name = "mediumTimeFormat";
-	    def = "h:mm:ss a";
-	    break;
-	  case SHORT:
-	    name = "shortTimeFormat";
-	    def = "h:mm a";
-	    break;
-	  default:
-	    throw new IllegalArgumentException ();
-	  }
-
-	String s;
-	try
-	  {
-	    s = res == null ? def : res.getString(name);
-	  }
-	catch (MissingResourceException x)
-	  {
-	    s = def;
-	  }
-	pattern += s;
-      }
-
-    return new SimpleDateFormat (pattern, loc);
-  }
-
- /**
-   * This method returns an instance of <code>DateFormat</code> that will
-   * format using the default formatting style for dates.
-   *
-   * @return A new <code>DateFormat</code> instance.
-   */
-  public static final DateFormat getDateInstance ()
-  {
-    return getDateInstance (DEFAULT, Locale.getDefault());
-  }
-
-  /**
-   * This method returns an instance of <code>DateFormat</code> that will
-   * format using the specified formatting style for dates.
-   *
-   * @param style The type of formatting to perform. 
-   * 
-   * @return A new <code>DateFormat</code> instance.
-   */
-  public static final DateFormat getDateInstance (int style)
-  {
-    return getDateInstance (style, Locale.getDefault());
-  }
-
-  /**
-   * This method returns an instance of <code>DateFormat</code> that will
-   * format using the specified formatting style for dates.  The specified
-   * localed will be used in place of the default.
-   *
-   * @param style The type of formatting to perform. 
-   * @param loc The desired locale.
-   * 
-   * @return A new <code>DateFormat</code> instance.
-   */
-  public static final DateFormat getDateInstance (int style, Locale loc)
-  {
-    return computeInstance (style, loc, true, false);
-  }
-
-  /**
-   * This method returns a new instance of <code>DateFormat</code> that
-   * formats both dates and times using the <code>SHORT</code> style.
-   *
-   * @return A new <code>DateFormat</code>instance.
-   */
-  public static final DateFormat getDateTimeInstance ()
-  {
-    return getDateTimeInstance (DEFAULT, DEFAULT, Locale.getDefault());
-  }
-
-  /**
-   * This method returns a new instance of <code>DateFormat</code> that
-   * formats both dates and times using the <code>DEFAULT</code> style.
-   *
-   * @return A new <code>DateFormat</code>instance.
-   */
-  public static final DateFormat getDateTimeInstance (int dateStyle, 
-						      int timeStyle)
-  {
-    return getDateTimeInstance (dateStyle, timeStyle, Locale.getDefault());
-  }
-
-  /**
-   * This method returns a new instance of <code>DateFormat</code> that
-   * formats both dates and times using the specified styles.
-   * 
-   * @param dateStyle The desired style for date formatting.
-   * @param timeStyle The desired style for time formatting
-   *
-   * @return A new <code>DateFormat</code>instance.
-   */
-  public static final DateFormat getDateTimeInstance (int dateStyle, 
-						      int timeStyle, 
-						      Locale loc)
-  {
-    return computeInstance (dateStyle, timeStyle, loc, true, true);
-  }
-
-  /**
-   * This method returns a new instance of <code>DateFormat</code> that
-   * formats both dates and times using the <code>SHORT</code> style.
-   *
-   * @return A new <code>DateFormat</code>instance.
-   */
-  public static final DateFormat getInstance ()
-  {
-    // JCL book says SHORT.
-    return getDateTimeInstance (SHORT, SHORT, Locale.getDefault());
-  }
-
-  /**
-   * This method returns the <code>NumberFormat</code> object being used
-   * by this object to parse/format time values.
-   *
-   * @return The <code>NumberFormat</code> in use by this object.
-   */
-  public NumberFormat getNumberFormat ()
-  {
-    return numberFormat;
-  }
-
- /**
-   * This method returns an instance of <code>DateFormat</code> that will
-   * format using the default formatting style for times.
-   *
-   * @return A new <code>DateFormat</code> instance.
-   */
-  public static final DateFormat getTimeInstance ()
-  {
-    return getTimeInstance (DEFAULT, Locale.getDefault());
-  }
-
-  /**
-   * This method returns an instance of <code>DateFormat</code> that will
-   * format using the specified formatting style for times.
-   *
-   * @param style The type of formatting to perform. 
-   * 
-   * @return A new <code>DateFormat</code> instance.
-   */
-  public static final DateFormat getTimeInstance (int style)
-  {
-    return getTimeInstance (style, Locale.getDefault());
-  }
-
-  /**
-   * This method returns an instance of <code>DateFormat</code> that will
-   * format using the specified formatting style for times.  The specified
-   * localed will be used in place of the default.
-   *
-   * @param style The type of formatting to perform. 
-   * @param loc The desired locale.
-   * 
-   * @return A new <code>DateFormat</code> instance.
-   */
-  public static final DateFormat getTimeInstance (int style, Locale loc)
-  {
-    return computeInstance (style, loc, false, true);
-  }
-
-  /**
-   * This method returns the <code>TimeZone</code> object being used by
-   * this instance.
-   *
-   * @return The time zone in use.
-   */
-  public TimeZone getTimeZone ()
-  {
-    return calendar.getTimeZone();
-  }
-
-  /**
-   * This method returns a hash value for this object.
-   * 
-   * @return A hash value for this object.
-   */
-  public int hashCode ()
-  {
-    if (numberFormat != null)
-      return numberFormat.hashCode();
-    else
-      return 0;
-  }
-
-  /**
-   * This method indicates whether or not the parsing of date and time
-   * values should be done in a lenient value.
-   *
-   * @return <code>true</code> if date/time parsing is lenient,
-   * <code>false</code> otherwise.
-   */
-  public boolean isLenient ()
-  {
-    return calendar.isLenient();
-  }
-
-  /**
-   * This method parses the specified date/time string.
-   *
-   * @param source The string to parse.
-   * @return The resultant date.
-   *
-   * @exception ParseException If the specified string cannot be parsed.
-   */
-  public Date parse (String source) throws ParseException
-  {
-    ParsePosition pos = new ParsePosition(0);
-    Date result = parse (source, pos);
-    if (result == null)
-      {
-	int index = pos.getErrorIndex();
-	if (index < 0)
-	  index = pos.getIndex();
-	throw new ParseException("invalid Date syntax in \""
-				 + source + '\"', index);
-      }
-    return result;
-  }
-
-  /** 
-   * This method parses the specified <code>String</code> into a 
-   * <code>Date</code>.  The <code>pos</code> argument contains the
-   * starting parse position on method entry and the ending parse
-   * position on method exit.
-   *
-   * @param source The string to parse.
-   * @param pos The starting parse position in entry, the ending parse
-   * position on exit.
-   *
-   * @return The parsed date, or <code>null</code> if the string cannot
-   * be parsed.
-   */
-  public abstract Date parse (String source, ParsePosition pos);
-
-  /**
-   * This method is identical to <code>parse(String, ParsePosition)</code>,
-   * but returns its result as an <code>Object</code> instead of a
-   * <code>Date</code>.
-   * 
-   * @param source The string to parse.
-   * @param pos The starting parse position in entry, the ending parse
-   * position on exit.
-   *
-   * @return The parsed date, or <code>null</code> if the string cannot
-   * be parsed.
-   */
-  public Object parseObject (String source, ParsePosition pos)
-  {
-    return parse(source, pos);
-  }
-
-  /**
-   * This method specified the <code>Calendar</code> that should be used 
-   * by this object to parse/format datetimes.
-   *
-   * @param calendar The new <code>Calendar</code> for this object.
-   *
-   * @see java.util.Calendar
-   */
-  public void setCalendar (Calendar calendar)
-  {
-    this.calendar = calendar;
-  }
-
-  /**
-   * This method specifies whether or not this object should be lenient in 
-   * the syntax it accepts while parsing date/time values.
-   *
-   * @param lenient <code>true</code> if parsing should be lenient,
-   * <code>false</code> otherwise.
-   */
-  public void setLenient (boolean lenient)
-  {
-    calendar.setLenient(lenient);
-  }
-
-  /**
-   * This method specifies the <code>NumberFormat</code> object that should
-   * be used by this object to parse/format times.
-   *
-   * @param numberFormat The <code>NumberFormat</code> in use by this object.
-   */
-  public void setNumberFormat (NumberFormat numberFormat)
-  {
-    this.numberFormat = numberFormat;
-  }
-
-  /**
-   * This method sets the time zone that should be used by this object.
-   *
-   * @param timeZone The new time zone.
-   */
-  public void setTimeZone (TimeZone timeZone)
-  {
-    calendar.setTimeZone(timeZone);
-  }
-}


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]