Projects
Eulaceura:Factory
apache-commons-lang
_service:obs_scm:0002-Fix-FastDateFormat-for-Ja...
Sign Up
Log In
Username
Password
Overview
Repositories
Revisions
Requests
Users
Attributes
Meta
File _service:obs_scm:0002-Fix-FastDateFormat-for-Java-7-behaviour.patch of Package apache-commons-lang
From 6af11cb2cfdf83ce013a531005077259984c55e7 Mon Sep 17 00:00:00 2001 From: Stanislav Ochotnicky <sochotnicky@redhat.com> Date: Wed, 22 Feb 2012 11:21:06 +0100 Subject: [PATCH 2/2] Fix FastDateFormat for Java 7 behaviour Backported from 1146138 See https://issues.apache.org/jira/browse/LANG-719 for more information --- .../apache/commons/lang/time/FastDateFormat.java | 14 ++++++++++---- .../commons/lang/time/FastDateFormatTest.java | 5 +++-- 2 files changed, 13 insertions(+), 6 deletions(-) diff --git a/src/main/java/org/apache/commons/lang/time/FastDateFormat.java b/src/main/java/org/apache/commons/lang/time/FastDateFormat.java index 2ca7e5c..b7e19ec 100644 --- a/src/main/java/org/apache/commons/lang/time/FastDateFormat.java +++ b/src/main/java/org/apache/commons/lang/time/FastDateFormat.java @@ -49,7 +49,7 @@ import org.apache.commons.lang.text.StrBuilder; * </p> * * <p>Only formatting is supported, but all patterns are compatible with - * SimpleDateFormat (except time zones - see below).</p> + * SimpleDateFormat (except time zones and some year patterns - see below).</p> * * <p>Java 1.4 introduced a new pattern letter, <code>'Z'</code>, to represent * time zones in RFC822 format (eg. <code>+0800</code> or <code>-1100</code>). @@ -60,6 +60,12 @@ import org.apache.commons.lang.text.StrBuilder; * This introduces a minor incompatibility with Java 1.4, but at a gain of * useful functionality.</p> * + * <p>Javadoc cites for the year pattern: <i>For formatting, if the number of + * pattern letters is 2, the year is truncated to 2 digits; otherwise it is + * interpreted as a number.</i> Starting with Java 1.7 a pattern of 'Y' or + * 'YYY' will be formatted as '2003', while it was '03' in former Java + * versions. FastDateFormat implements the behavior of Java 7.</p> + * * @author Apache Software Foundation * @author TeaTrove project * @author Brian S O'Neill @@ -606,10 +612,10 @@ public class FastDateFormat extends Format { rule = new TextField(Calendar.ERA, ERAs); break; case 'y': // year (number) - if (tokenLen >= 4) { - rule = selectNumberRule(Calendar.YEAR, tokenLen); - } else { + if (tokenLen == 2) { rule = TwoDigitYearField.INSTANCE; + } else { + rule = selectNumberRule(Calendar.YEAR, tokenLen < 4 ? 4 : tokenLen); } break; case 'M': // month in year (text and number) diff --git a/src/test/java/org/apache/commons/lang/time/FastDateFormatTest.java b/src/test/java/org/apache/commons/lang/time/FastDateFormatTest.java index 8232747..bd4d664 100644 --- a/src/test/java/org/apache/commons/lang/time/FastDateFormatTest.java +++ b/src/test/java/org/apache/commons/lang/time/FastDateFormatTest.java @@ -230,8 +230,9 @@ public class FastDateFormatTest extends TestCase { " dddd ddd dd d DDDD DDD DD D EEEE EEE EE E aaaa aaa aa a zzzz zzz zz z"; fdf = FastDateFormat.getInstance(pattern); sdf = new SimpleDateFormat(pattern); - assertEquals(sdf.format(date1), fdf.format(date1)); - assertEquals(sdf.format(date2), fdf.format(date2)); + // SDF bug fix starting with Java 7 + assertEquals(sdf.format(date1).replaceAll("2003 03 03 03", "2003 2003 03 2003"), fdf.format(date1)); + assertEquals(sdf.format(date2).replaceAll("2003 03 03 03", "2003 2003 03 2003"), fdf.format(date2)); } finally { Locale.setDefault(realDefaultLocale); -- 1.7.7.6
Locations
Projects
Search
Status Monitor
Help
Open Build Service
OBS Manuals
API Documentation
OBS Portal
Reporting a Bug
Contact
Mailing List
Forums
Chat (IRC)
Twitter
Open Build Service (OBS)
is an
openSUSE project
.
浙ICP备2022010568号-2