SimpleDateFormat.java (parse): Don't use class calendar field.
2003-09-25 Guilhem Lavaux <guilhem@kaffe.org> * java/text/SimpleDateFormat.java (parse): Don't use class calendar field. From-SVN: r71782
This commit is contained in:
parent
c5fd8041ed
commit
cc9556b924
2 changed files with 17 additions and 11 deletions
|
@ -1,3 +1,8 @@
|
||||||
|
2003-09-25 Guilhem Lavaux <guilhem@kaffe.org>
|
||||||
|
|
||||||
|
* java/text/SimpleDateFormat.java (parse): Don't use class calendar
|
||||||
|
field.
|
||||||
|
|
||||||
2003-09-25 Michael Koch <konqueror@gmx.de>
|
2003-09-25 Michael Koch <konqueror@gmx.de>
|
||||||
|
|
||||||
* gnu/java/nio/SelectorImpl.java
|
* gnu/java/nio/SelectorImpl.java
|
||||||
|
|
|
@ -547,8 +547,9 @@ public class SimpleDateFormat extends DateFormat
|
||||||
{
|
{
|
||||||
int fmt_index = 0;
|
int fmt_index = 0;
|
||||||
int fmt_max = pattern.length();
|
int fmt_max = pattern.length();
|
||||||
|
Calendar loc_calendar = (Calendar)calendar.clone();
|
||||||
|
|
||||||
calendar.clear();
|
loc_calendar.clear();
|
||||||
boolean saw_timezone = false;
|
boolean saw_timezone = false;
|
||||||
int quote_start = -1;
|
int quote_start = -1;
|
||||||
boolean is2DigitYear = false;
|
boolean is2DigitYear = false;
|
||||||
|
@ -696,8 +697,8 @@ public class SimpleDateFormat extends DateFormat
|
||||||
found_zone = true;
|
found_zone = true;
|
||||||
saw_timezone = true;
|
saw_timezone = true;
|
||||||
TimeZone tz = TimeZone.getTimeZone (strings[0]);
|
TimeZone tz = TimeZone.getTimeZone (strings[0]);
|
||||||
calendar.setTimeZone (tz);
|
loc_calendar.setTimeZone (tz);
|
||||||
calendar.set (Calendar.ZONE_OFFSET, tz.getRawOffset ());
|
loc_calendar.set (Calendar.ZONE_OFFSET, tz.getRawOffset ());
|
||||||
offset = 0;
|
offset = 0;
|
||||||
if (k > 2 && tz instanceof SimpleTimeZone)
|
if (k > 2 && tz instanceof SimpleTimeZone)
|
||||||
{
|
{
|
||||||
|
@ -764,17 +765,17 @@ public class SimpleDateFormat extends DateFormat
|
||||||
}
|
}
|
||||||
|
|
||||||
// Assign the value and move on.
|
// Assign the value and move on.
|
||||||
calendar.set(calendar_field, value);
|
loc_calendar.set(calendar_field, value);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (is2DigitYear)
|
if (is2DigitYear)
|
||||||
{
|
{
|
||||||
// Apply the 80-20 heuristic to dermine the full year based on
|
// Apply the 80-20 heuristic to dermine the full year based on
|
||||||
// defaultCenturyStart.
|
// defaultCenturyStart.
|
||||||
int year = defaultCentury + calendar.get(Calendar.YEAR);
|
int year = defaultCentury + loc_calendar.get(Calendar.YEAR);
|
||||||
calendar.set(Calendar.YEAR, year);
|
loc_calendar.set(Calendar.YEAR, year);
|
||||||
if (calendar.getTime().compareTo(defaultCenturyStart) < 0)
|
if (loc_calendar.getTime().compareTo(defaultCenturyStart) < 0)
|
||||||
calendar.set(Calendar.YEAR, year + 100);
|
loc_calendar.set(Calendar.YEAR, year + 100);
|
||||||
}
|
}
|
||||||
|
|
||||||
try
|
try
|
||||||
|
@ -783,10 +784,10 @@ public class SimpleDateFormat extends DateFormat
|
||||||
{
|
{
|
||||||
// Use the real rules to determine whether or not this
|
// Use the real rules to determine whether or not this
|
||||||
// particular time is in daylight savings.
|
// particular time is in daylight savings.
|
||||||
calendar.clear (Calendar.DST_OFFSET);
|
loc_calendar.clear (Calendar.DST_OFFSET);
|
||||||
calendar.clear (Calendar.ZONE_OFFSET);
|
loc_calendar.clear (Calendar.ZONE_OFFSET);
|
||||||
}
|
}
|
||||||
return calendar.getTime();
|
return loc_calendar.getTime();
|
||||||
}
|
}
|
||||||
catch (IllegalArgumentException x)
|
catch (IllegalArgumentException x)
|
||||||
{
|
{
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue