Commit 933e5b28 by Mark Wielaard

[multiple changes]

2005-02-21  Mark Wielaard  <mark@klomp.org>

	* gnu/java/locale/LocaleInformation_en.java: Extend
	localPatternChars to "GyMdkHmsSEDFwWahKzYeugAZ".

2005-02-21  Mark Wielaard  <mark@klomp.org>

	* java/text/SimpleDateFormat.java
	(SimpleDateFormat(String, DateFormatSymbols)): Throw
	NullPointerException when formatData is null.

2005-02-21  Mark Wielaard  <mark@klomp.org>

	* java/util/SimpleTimeZone.java (getOffset): Calculate beforeEnd by
	taking dstSavings into account.

2005-02-21  Sven de Marothy <sven@physto.se>

	* java/text/SimpleDateFormat.java,
	(parse): Set correct DST_OFFSET to the correct value.

2005-02-21  Mark Wielaard  <mark@klomp.org>

	* java/util/SimpleTimeZone.java (checkRule): Throw
	IllegalArgumentException when month out of range.

2005-02-21  Sven de Marothy  <sven@physto.se>

	* java/util/GregorianCalendar.java,
	(add): Don't set fields directly anymore. Use set()

2005-02-21  Mark Wielaard  <mark@klomp.org>

	* java/text/SimpleDateFormat.java (CompiledField.toString):
	Use StringBuffer, not StringBuilder.
	(toString): Likewise.

2005-02-21  Sven de Marothy  <sven@physto.se>

	* java/util/Calendar.java
	(clear): Dates should clear to local time.
	* java/util/GregorianCalendar.java
	(computeTime): Fix priority problem with DAY_OF_WEEK,
	Handle non-sunday-startig weeks and minimumDaysInFirstWeek.

2005-02-21  Sven de Marothy  <sven@physto.se>

	* java/util/Calendar.java
	(Calendar): Constructor should clear fields.

2005-02-21  Sven de Marothy  <sven@physto.se>

	* java/text/SimpleDateFormat.java
	(parse): Tweak handling of 2-year dates
	* java/util/Calendar.java
	(clear): Clear fields to correct value.
	* java/util/GregorianCalendar.java
	(computeTime): Correct handling of time zones.
	Correct field minimum values.

2005-02-21  Sven de Marothy  <sven@physto.se>

	* java/util/Calendar.java
	(set) Invalidate all fields on first call to set().

2005-02-21  Sven de Marothy  <sven@physto.se>

	* java/util/GregorianCalendar.java
	(computeTime): Fixed handling of time zones.

2005-02-21  Sven de Marothy  <sven@physto.se>

	* java/util/Calendar.java
	(clear): Set values to Epoch instead of zero.
	(set): Set isSet to the relevant field pattern instead of just
	the field.
	* java/util/GregorianCalendar.java
	(getBundle): Removed.
	(getDayOfYear): Removed.
	(getFirstDayOfMonth): New private method.
	(nonLeniencyCheck): New private method.
	(computeTime): Correct handling of insufficient data.

2005-02-21  Sven de Marothy <sven@physto.se>

	* java/util/Calendar.java: Invalidate ERA field on setting
	the YEAR.
	* java/util/SimpleTimeZone.java:
	(getDaysInMonth): Reimplemented.
	* java/util/GregorianCalendar.java:
	(getLinearTime): Removed.
	(isLeapYear(int,boolean)): Removed.
	(before(), after()): Removed.
	(computeTime): Reimplemented.

2005-02-21  Sven de Marothy <sven@physto.se>

	* java/util/Calendar.java: Reformatted.
	* java/util/GregorianCalendar.java: Reformatted.
	* java/util/SimpleTimeZone.java: Reformatted.

2005-02-21  Sven de Marothy <sven@physto.se>

        * java/util/GregorianCalendar.java
        (GregorianCalendar): Update fields in the constructor

2005-02-21  Noa Resare  <noa@resare.com>

        * java/util/Calendar.java (explicitDSTOffset): New instance field.
        (set(int,int)): Set and use new field.
        (set(int,int,int)): Check new field.

2005-02-21  Noa Resare  <address@hidden>

	* java/util/Calendar.java(set):
	Fix for DST related regression.

2005-02-21  Jeroen Frijters  <jeroen@frijters.net>

	* java/util/Calendar.java
	(setTimeInMillis): Added call to clear, removed computeFields call.
	* java/util/Date.java
	(Date(int,int,int,int,int,int)): Removed workaround for
	GregorianCalendar bug.
	* java/util/GregorianCalendar.java
	(GregorianCalendar): Chained all constructors to a (new)
	common constructor.
	(computeTime): Fixed support for lenient month treatment.
	(getLinearDay): Return long instead of int.
	(calculateDay): Added fields argument and changed day argument
	to long.

2005-02-21  Andrew John Hughes  <gnu_andrew@member.fsf.org>

	* java/text/SimpleDateFormat.java
	Lots of documentation updates.
	(readObject(java.io.ObjectInputStream)): Wraps
	IllegalArgumentException as specified.
	(compileFormat(String)): Uses standardChars
	rather than the local pattern characters.
	Throws IllegalArgumentException rather than
	storing a -1 field.
	(toString()): Extended to include all variables
	in a better format.
	(translateLocalizedPattern(String, String, String)):
	Renamed to better define the use of this method.

2005-02-21  Andrew John Hughes  <gnu_andrew@member.fsf.org>

	* java/text/DateFormat.java:
	Documented pattern character offset constants and
	added new ones.
	(Field): Added new static fields for new pattern chars.
	* java/text/SimpleDateFormat.java:
	(CompiledField): Changed name of FieldSizePair class
	to CompiledField after adding the character as an
	attribute.  Changed fields to private and added
	accessors to give encapsulation.
	(CompiledField.CompiledField(int,int,char)): Extended
	with character field.
	(CompiledField.getField()): New accessor method.
	(CompiledField.getSize()): New acceessor method.
	(CompiledField.getCharacter()): New accessor method.
	(CompiledField.toString()): Added primarily for debugging.
	(standardChars): Now uses extended 24 character sequence.
	(compileFormat(String)): Changed to use CompiledField.
	(formatWithAttribute(java.util.Date, gnu.java.text.FormatBuffer,
	java.text.FieldPosition)): Changed to use CompiledField.
	New handler for RFC 822 timezones added.

2005-02-21  Andrew John Hughes  <gnu_andrew@member.fsf.org>

	* java/text/SimpleDateFormat.java:
	(parse(String, java.text.ParsePosition)):
	Changed 'E' and 'M' cases to use both
	short and long names.  Extended 'z'
	case to also handle 'Z', and deal
	with simple GMT offsets such as +0100.
	(computeOffset(String)): New private method,
	which converts a GMT offset specification,
	such as GMT-0500 to a numeric offset in
	milliseconds.
	* java/util/TimeZone.java:
	(timezones()): Added "CEST", the daylight
	savings time version of "CET", or Central
	European Time.

2005-02-21  Ito Kazumitsu  <kaz@maczuka.gcd.org>

	* java/text/SimpleDateFormat.java:
	(parse): Set the DST offset to 0 when parsing
	GMT offset timezones.

2005-02-21  Ito Kazumitsu  <kaz@maczuka.gcd.org>

	* java/text/SimpleDateFormat.java:
	(parse): Use offset to set ZONE_OFFSET
	rather than the DST_OFFSET, so that
	GMT offset timezones change the right
	one.

2005-02-21  Andrew John Hughes  <gnu_andrew@member.fsf.org>

	* java/text/SimpleDateFormat.java:
	(getDateFormatSymbols()): return a copy
	(setDateFormatSymbols(java.text.DateFormatSymbols)):
	throw exception on null input
	(clone()): implemented to clone
	internal fields

2005-02-21  Sven de Marothy <sven@physto.se>

	* java/text/SimpleDateFormat.java
	(parse): comparison should be case-insensitive, ignore null
	strings.

From-SVN: r95368
parent 665794a6
2005-02-21 Mark Wielaard <mark@klomp.org>
* gnu/java/locale/LocaleInformation_en.java: Extend
localPatternChars to "GyMdkHmsSEDFwWahKzYeugAZ".
2005-02-21 Mark Wielaard <mark@klomp.org>
* java/text/SimpleDateFormat.java
(SimpleDateFormat(String, DateFormatSymbols)): Throw
NullPointerException when formatData is null.
2005-02-21 Mark Wielaard <mark@klomp.org>
* java/util/SimpleTimeZone.java (getOffset): Calculate beforeEnd by
taking dstSavings into account.
2005-02-21 Sven de Marothy <sven@physto.se>
* java/text/SimpleDateFormat.java,
(parse): Set correct DST_OFFSET to the correct value.
2005-02-21 Mark Wielaard <mark@klomp.org>
* java/util/SimpleTimeZone.java (checkRule): Throw
IllegalArgumentException when month out of range.
2005-02-21 Sven de Marothy <sven@physto.se>
* java/util/GregorianCalendar.java,
(add): Don't set fields directly anymore. Use set()
2005-02-21 Mark Wielaard <mark@klomp.org>
* java/text/SimpleDateFormat.java (CompiledField.toString):
Use StringBuffer, not StringBuilder.
(toString): Likewise.
2005-02-21 Sven de Marothy <sven@physto.se>
* java/util/Calendar.java
(clear): Dates should clear to local time.
* java/util/GregorianCalendar.java
(computeTime): Fix priority problem with DAY_OF_WEEK,
Handle non-sunday-startig weeks and minimumDaysInFirstWeek.
2005-02-21 Sven de Marothy <sven@physto.se>
* java/util/Calendar.java
(Calendar): Constructor should clear fields.
2005-02-21 Sven de Marothy <sven@physto.se>
* java/text/SimpleDateFormat.java
(parse): Tweak handling of 2-year dates
* java/util/Calendar.java
(clear): Clear fields to correct value.
* java/util/GregorianCalendar.java
(computeTime): Correct handling of time zones.
Correct field minimum values.
2005-02-21 Sven de Marothy <sven@physto.se>
* java/util/Calendar.java
(set) Invalidate all fields on first call to set().
2005-02-21 Sven de Marothy <sven@physto.se>
* java/util/GregorianCalendar.java
(computeTime): Fixed handling of time zones.
2005-02-21 Sven de Marothy <sven@physto.se>
* java/util/Calendar.java
(clear): Set values to Epoch instead of zero.
(set): Set isSet to the relevant field pattern instead of just
the field.
* java/util/GregorianCalendar.java
(getBundle): Removed.
(getDayOfYear): Removed.
(getFirstDayOfMonth): New private method.
(nonLeniencyCheck): New private method.
(computeTime): Correct handling of insufficient data.
2005-02-21 Sven de Marothy <sven@physto.se>
* java/util/Calendar.java: Invalidate ERA field on setting
the YEAR.
* java/util/SimpleTimeZone.java:
(getDaysInMonth): Reimplemented.
* java/util/GregorianCalendar.java:
(getLinearTime): Removed.
(isLeapYear(int,boolean)): Removed.
(before(), after()): Removed.
(computeTime): Reimplemented.
2005-02-21 Sven de Marothy <sven@physto.se>
* java/util/Calendar.java: Reformatted.
* java/util/GregorianCalendar.java: Reformatted.
* java/util/SimpleTimeZone.java: Reformatted.
2005-02-21 Sven de Marothy <sven@physto.se>
* java/util/GregorianCalendar.java
(GregorianCalendar): Update fields in the constructor
2005-02-21 Noa Resare <noa@resare.com>
* java/util/Calendar.java (explicitDSTOffset): New instance field.
(set(int,int)): Set and use new field.
(set(int,int,int)): Check new field.
2005-02-21 Noa Resare <address@hidden>
* java/util/Calendar.java(set):
Fix for DST related regression.
2005-02-21 Jeroen Frijters <jeroen@frijters.net>
* java/util/Calendar.java
(setTimeInMillis): Added call to clear, removed computeFields call.
* java/util/Date.java
(Date(int,int,int,int,int,int)): Removed workaround for
GregorianCalendar bug.
* java/util/GregorianCalendar.java
(GregorianCalendar): Chained all constructors to a (new)
common constructor.
(computeTime): Fixed support for lenient month treatment.
(getLinearDay): Return long instead of int.
(calculateDay): Added fields argument and changed day argument
to long.
2005-02-21 Andrew John Hughes <gnu_andrew@member.fsf.org>
* java/text/SimpleDateFormat.java
Lots of documentation updates.
(readObject(java.io.ObjectInputStream)): Wraps
IllegalArgumentException as specified.
(compileFormat(String)): Uses standardChars
rather than the local pattern characters.
Throws IllegalArgumentException rather than
storing a -1 field.
(toString()): Extended to include all variables
in a better format.
(translateLocalizedPattern(String, String, String)):
Renamed to better define the use of this method.
2005-02-21 Andrew John Hughes <gnu_andrew@member.fsf.org>
* java/text/DateFormat.java:
Documented pattern character offset constants and
added new ones.
(Field): Added new static fields for new pattern chars.
* java/text/SimpleDateFormat.java:
(CompiledField): Changed name of FieldSizePair class
to CompiledField after adding the character as an
attribute. Changed fields to private and added
accessors to give encapsulation.
(CompiledField.CompiledField(int,int,char)): Extended
with character field.
(CompiledField.getField()): New accessor method.
(CompiledField.getSize()): New acceessor method.
(CompiledField.getCharacter()): New accessor method.
(CompiledField.toString()): Added primarily for debugging.
(standardChars): Now uses extended 24 character sequence.
(compileFormat(String)): Changed to use CompiledField.
(formatWithAttribute(java.util.Date, gnu.java.text.FormatBuffer,
java.text.FieldPosition)): Changed to use CompiledField.
New handler for RFC 822 timezones added.
2005-02-21 Andrew John Hughes <gnu_andrew@member.fsf.org>
* java/text/SimpleDateFormat.java:
(parse(String, java.text.ParsePosition)):
Changed 'E' and 'M' cases to use both
short and long names. Extended 'z'
case to also handle 'Z', and deal
with simple GMT offsets such as +0100.
(computeOffset(String)): New private method,
which converts a GMT offset specification,
such as GMT-0500 to a numeric offset in
milliseconds.
* java/util/TimeZone.java:
(timezones()): Added "CEST", the daylight
savings time version of "CET", or Central
European Time.
2005-02-21 Ito Kazumitsu <kaz@maczuka.gcd.org>
* java/text/SimpleDateFormat.java:
(parse): Set the DST offset to 0 when parsing
GMT offset timezones.
2005-02-21 Ito Kazumitsu <kaz@maczuka.gcd.org>
* java/text/SimpleDateFormat.java:
(parse): Use offset to set ZONE_OFFSET
rather than the DST_OFFSET, so that
GMT offset timezones change the right
one.
2005-02-21 Andrew John Hughes <gnu_andrew@member.fsf.org>
* java/text/SimpleDateFormat.java:
(getDateFormatSymbols()): return a copy
(setDateFormatSymbols(java.text.DateFormatSymbols)):
throw exception on null input
(clone()): implemented to clone
internal fields
2005-02-21 Sven de Marothy <sven@physto.se>
* java/text/SimpleDateFormat.java
(parse): comparison should be case-insensitive, ignore null
strings.
2005-02-21 Robert Schuster <theBohemian@gmx.net>
* gnu/java/beans/IntrospectionIncubator.java
......
......@@ -159,7 +159,7 @@ public class LocaleInformation_en extends ListResourceBundle
{ "shortWeekdays", shortWeekdays },
{ "ampms", ampms },
{ "eras", eras },
{ "localPatternChars", "GyMdkHmsSEDFwWahKz" },
{ "localPatternChars", "GyMdkHmsSEDFwWahKzYeugAZ" },
{ "zoneStrings", zoneStrings },
{ "shortDateFormat", "M/d/yy" }, // Java's Y2K bug.
......
......@@ -70,29 +70,221 @@ public abstract class DateFormat extends Format implements Cloneable
/* These constants need to have these exact values. They
* correspond to index positions within the localPatternChars
* string for a given locale. For example, the US locale uses
* the string "GyMdkHmsSEDFwWahKz", where 'G' is the character
* for era, 'y' for year, and so on down to 'z' for time zone.
* 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
{
......@@ -136,14 +328,28 @@ public abstract class DateFormat extends Format implements Cloneable
= 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
TIME_ZONE, ISO_YEAR, LOCALIZED_DAY_OF_WEEK,
EXTENDED_YEAR, MODIFIED_JULIAN_DAY, MILLISECOND_IN_DAY,
RFC822_TIME_ZONE
};
// For deserialization
......
......@@ -447,6 +447,7 @@ public abstract class TimeZone implements java.io.Serializable, Cloneable
Calendar.MARCH, -1, Calendar.SUNDAY, 2000 * 3600,
Calendar.OCTOBER, -1, Calendar.SUNDAY, 2000 * 3600);
timezones0.put("CET", tz);
timezones0.put("CEST", tz);
timezones0.put("ECT", tz);
timezones0.put("MET", tz);
timezones0.put("Africa/Ceuta", tz);
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment