Calendar.java (set): Never recompute fields here.
* java/util/Calendar.java (set): Never recompute fields here. They will already be set if someone set time explicitly, and it can cause problems to do so. Don't invalidate AM_PM setting if HOUR is set. * java/util/GregorianCalendar.java (computeTime): Don't ignore an HOUR setting if AM_PM is set. Don't try to ensure the HOUR value is sane. * java/text/SimpleDateFormat.java (defaultCentury): New field. (readObject): Call set2DigitYearStart if appropriate so that defaultCentury is calculated. (SimpleDateFormat): Don't bother clearing calendar here. Call computeCenturyStart(). (set2DigitYearStart): Calculate and set defaultCentury. (format): Don't clone the calendar. Use "calendar" not "theCalendar" everywhere. (parse): Likewise. If the pattern is "y" or "yy" and it found exactly 2 numeric digits, use the 80-20 heuristic to parse the value into a default century based on defaultCenturyStart. (computeCenturyStart): Rewritten. Call set2DigitYearStart(). From-SVN: r44395
This commit is contained in:
parent
2cf50fd3a4
commit
fa397ddafb
4 changed files with 112 additions and 71 deletions
|
@ -549,8 +549,6 @@ public abstract class Calendar implements Serializable, Cloneable
|
|||
*/
|
||||
public final void set(int field, int value)
|
||||
{
|
||||
if (!areFieldsSet)
|
||||
computeFields();
|
||||
isTimeSet = false;
|
||||
fields[field] = value;
|
||||
isSet[field] = true;
|
||||
|
@ -573,7 +571,6 @@ public abstract class Calendar implements Serializable, Cloneable
|
|||
isSet[HOUR] = false;
|
||||
break;
|
||||
case HOUR:
|
||||
isSet[AM_PM] = false;
|
||||
isSet[HOUR_OF_DAY] = false;
|
||||
break;
|
||||
}
|
||||
|
@ -587,8 +584,6 @@ public abstract class Calendar implements Serializable, Cloneable
|
|||
*/
|
||||
public final void set(int year, int month, int date)
|
||||
{
|
||||
if (!areFieldsSet)
|
||||
computeFields();
|
||||
isTimeSet = false;
|
||||
fields[YEAR] = year;
|
||||
fields[MONTH] = month;
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue