diff options
| author | bryce <bryce@138bc75d-0d04-0410-961f-82ee72b054a4> | 2001-07-26 11:21:45 +0000 |
|---|---|---|
| committer | bryce <bryce@138bc75d-0d04-0410-961f-82ee72b054a4> | 2001-07-26 11:21:45 +0000 |
| commit | 5f329d591ca02004500101b7ffe6c2ed96925617 (patch) | |
| tree | f1888f988daa008faa5d48c983f690f3067987c7 /libjava/java/util/GregorianCalendar.java | |
| parent | 2bbbdf1a822ddcdbd2352dbd9f2a3c15bbce32c3 (diff) | |
| download | ppe42-gcc-5f329d591ca02004500101b7ffe6c2ed96925617.tar.gz ppe42-gcc-5f329d591ca02004500101b7ffe6c2ed96925617.zip | |
* 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().
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@44395 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'libjava/java/util/GregorianCalendar.java')
| -rw-r--r-- | libjava/java/util/GregorianCalendar.java | 14 |
1 files changed, 11 insertions, 3 deletions
diff --git a/libjava/java/util/GregorianCalendar.java b/libjava/java/util/GregorianCalendar.java index 1a8d073da2f..2c68907bac4 100644 --- a/libjava/java/util/GregorianCalendar.java +++ b/libjava/java/util/GregorianCalendar.java @@ -373,9 +373,17 @@ public class GregorianCalendar extends Calendar year = 1 - year; int[] daysOfYear = getDayOfYear(year); - int hour = isSet[HOUR_OF_DAY] ? fields[HOUR_OF_DAY] - : (isSet[HOUR] && isSet[AM_PM] - ? fields[AM_PM] * 12 + (fields[HOUR] % 12) : 0); + + int hour = 0; + if (isSet[HOUR_OF_DAY]) + hour = fields[HOUR_OF_DAY]; + else if (isSet[HOUR]) + { + hour = fields[HOUR]; + if (isSet[AM_PM] && fields[AM_PM] == PM) + hour += 12; + } + int minute = isSet[MINUTE] ? fields[MINUTE] : 0; int second = isSet[SECOND] ? fields[SECOND] : 0; int millis = isSet[MILLISECOND] ? fields[MILLISECOND] : 0; |

