LANG-404 Add Calendar flavour format methods to DateFormatUtils
git-svn-id: https://svn.apache.org/repos/asf/commons/proper/lang/trunk@615243 13f79535-47bb-0310-9956-ffa450edef68
This commit is contained in:
parent
680d605d3f
commit
e266303c56
|
@ -97,3 +97,4 @@ IMPROVEMENTS IN 2.4:
|
||||||
* [LANG-362] - Add ExtendedMessageFormat to org.apache.commons.lang.text
|
* [LANG-362] - Add ExtendedMessageFormat to org.apache.commons.lang.text
|
||||||
* [LANG-366] - add MultiFormat
|
* [LANG-366] - add MultiFormat
|
||||||
* [LANG-371] - ToStringStyle javadoc should show examples of styles
|
* [LANG-371] - ToStringStyle javadoc should show examples of styles
|
||||||
|
* [LANG-404] - Add Calendar flavour format methods to DateFormatUtils
|
|
@ -16,6 +16,7 @@
|
||||||
*/
|
*/
|
||||||
package org.apache.commons.lang.time;
|
package org.apache.commons.lang.time;
|
||||||
|
|
||||||
|
import java.util.Calendar;
|
||||||
import java.util.Date;
|
import java.util.Date;
|
||||||
import java.util.Locale;
|
import java.util.Locale;
|
||||||
import java.util.TimeZone;
|
import java.util.TimeZone;
|
||||||
|
@ -184,6 +185,19 @@ public class DateFormatUtils {
|
||||||
return format(date, pattern, null, null);
|
return format(date, pattern, null, null);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* <p>Formats a calendar into a specific pattern.</p>
|
||||||
|
*
|
||||||
|
* @param calendar the calendar to format
|
||||||
|
* @param pattern the pattern to use to format the calendar
|
||||||
|
* @return the formatted calendar
|
||||||
|
* @see FastDateFormat#format(Calendar)
|
||||||
|
* @since 2.4
|
||||||
|
*/
|
||||||
|
public static String format(Calendar calendar, String pattern) {
|
||||||
|
return format(calendar, pattern, null, null);
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* <p>Formats a date/time into a specific pattern in a time zone.</p>
|
* <p>Formats a date/time into a specific pattern in a time zone.</p>
|
||||||
*
|
*
|
||||||
|
@ -208,6 +222,20 @@ public class DateFormatUtils {
|
||||||
return format(date, pattern, timeZone, null);
|
return format(date, pattern, timeZone, null);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* <p>Formats a calendar into a specific pattern in a time zone.</p>
|
||||||
|
*
|
||||||
|
* @param calendar the calendar to format
|
||||||
|
* @param pattern the pattern to use to format the calendar
|
||||||
|
* @param timeZone the time zone to use, may be <code>null</code>
|
||||||
|
* @return the formatted calendar
|
||||||
|
* @see FastDateFormat#format(Calendar)
|
||||||
|
* @since 2.4
|
||||||
|
*/
|
||||||
|
public static String format(Calendar calendar, String pattern, TimeZone timeZone) {
|
||||||
|
return format(calendar, pattern, timeZone, null);
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* <p>Formats a date/time into a specific pattern in a locale.</p>
|
* <p>Formats a date/time into a specific pattern in a locale.</p>
|
||||||
*
|
*
|
||||||
|
@ -232,6 +260,20 @@ public class DateFormatUtils {
|
||||||
return format(date, pattern, null, locale);
|
return format(date, pattern, null, locale);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* <p>Formats a calendar into a specific pattern in a locale.</p>
|
||||||
|
*
|
||||||
|
* @param calendar the calendar to format
|
||||||
|
* @param pattern the pattern to use to format the calendar
|
||||||
|
* @param locale the locale to use, may be <code>null</code>
|
||||||
|
* @return the formatted calendar
|
||||||
|
* @see FastDateFormat#format(Calendar)
|
||||||
|
* @since 2.4
|
||||||
|
*/
|
||||||
|
public static String format(Calendar calendar, String pattern, Locale locale) {
|
||||||
|
return format(calendar, pattern, null, locale);
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* <p>Formats a date/time into a specific pattern in a time zone and locale.</p>
|
* <p>Formats a date/time into a specific pattern in a time zone and locale.</p>
|
||||||
*
|
*
|
||||||
|
@ -259,4 +301,20 @@ public class DateFormatUtils {
|
||||||
return df.format(date);
|
return df.format(date);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* <p>Formats a calendar into a specific pattern in a time zone and locale.</p>
|
||||||
|
*
|
||||||
|
* @param calendar the calendar to format
|
||||||
|
* @param pattern the pattern to use to format the calendar
|
||||||
|
* @param timeZone the time zone to use, may be <code>null</code>
|
||||||
|
* @param locale the locale to use, may be <code>null</code>
|
||||||
|
* @return the formatted calendar
|
||||||
|
* @see FastDateFormat#format(Calendar)
|
||||||
|
* @since 2.4
|
||||||
|
*/
|
||||||
|
public static String format(Calendar calendar, String pattern, TimeZone timeZone, Locale locale) {
|
||||||
|
FastDateFormat df = FastDateFormat.getInstance(pattern, timeZone, locale);
|
||||||
|
return df.format(calendar);
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -85,6 +85,29 @@ public class DateFormatUtilsTest extends TestCase {
|
||||||
assertEquals(buffer.toString(), DateFormatUtils.format(c.getTime().getTime(), "yyyyMdH", Locale.US));
|
assertEquals(buffer.toString(), DateFormatUtils.format(c.getTime().getTime(), "yyyyMdH", Locale.US));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
//-----------------------------------------------------------------------
|
||||||
|
public void testFormatCalendar() {
|
||||||
|
Calendar c = Calendar.getInstance(TimeZone.getTimeZone("UTC"));
|
||||||
|
c.set(2005,0,1,12,0,0);
|
||||||
|
c.setTimeZone(TimeZone.getDefault());
|
||||||
|
StringBuffer buffer = new StringBuffer ();
|
||||||
|
int year = c.get(Calendar.YEAR);
|
||||||
|
int month = c.get(Calendar.MONTH) + 1;
|
||||||
|
int day = c.get(Calendar.DAY_OF_MONTH);
|
||||||
|
int hour = c.get(Calendar.HOUR_OF_DAY);
|
||||||
|
buffer.append (year);
|
||||||
|
buffer.append(month);
|
||||||
|
buffer.append(day);
|
||||||
|
buffer.append(hour);
|
||||||
|
assertEquals(buffer.toString(), DateFormatUtils.format(c, "yyyyMdH"));
|
||||||
|
|
||||||
|
assertEquals(buffer.toString(), DateFormatUtils.format(c.getTime(), "yyyyMdH"));
|
||||||
|
|
||||||
|
assertEquals(buffer.toString(), DateFormatUtils.format(c, "yyyyMdH", Locale.US));
|
||||||
|
|
||||||
|
assertEquals(buffer.toString(), DateFormatUtils.format(c.getTime(), "yyyyMdH", Locale.US));
|
||||||
|
}
|
||||||
|
|
||||||
public void testFormatUTC() {
|
public void testFormatUTC() {
|
||||||
Calendar c = Calendar.getInstance(TimeZone.getTimeZone("UTC"));
|
Calendar c = Calendar.getInstance(TimeZone.getTimeZone("UTC"));
|
||||||
c.set(2005,0,1,12,0,0);
|
c.set(2005,0,1,12,0,0);
|
||||||
|
|
Loading…
Reference in New Issue