Class DurationFormatUtils
- java.lang.Object
-
- org.apache.commons.lang.time.DurationFormatUtils
-
public class DurationFormatUtils extends Object
Duration formatting utilities and constants. The following table describes the tokens used in the pattern language for formatting.
character duration element y years M months d days H hours m minutes s seconds S milliseconds - Since:
- 2.1
- Version:
- $Id: DurationFormatUtils.java 1057072 2011-01-10 01:55:57Z niallp $
-
-
Field Summary
Fields Modifier and Type Field Description static String
ISO_EXTENDED_FORMAT_PATTERN
Pattern used withFastDateFormat
andSimpleDateFormat
for the ISO8601 period format used in durations.
-
Constructor Summary
Constructors Constructor Description DurationFormatUtils()
DurationFormatUtils instances should NOT be constructed in standard programming.
-
Method Summary
All Methods Static Methods Concrete Methods Modifier and Type Method Description static String
formatDuration(long durationMillis, String format)
Formats the time gap as a string, using the specified format, and padding with zeros and using the default timezone.static String
formatDuration(long durationMillis, String format, boolean padWithZeros)
Formats the time gap as a string, using the specified format.static String
formatDurationHMS(long durationMillis)
Formats the time gap as a string.static String
formatDurationISO(long durationMillis)
Formats the time gap as a string.static String
formatDurationWords(long durationMillis, boolean suppressLeadingZeroElements, boolean suppressTrailingZeroElements)
Formats an elapsed time into a plurialization correct string.static String
formatPeriod(long startMillis, long endMillis, String format)
Formats the time gap as a string, using the specified format.static String
formatPeriod(long startMillis, long endMillis, String format, boolean padWithZeros, TimeZone timezone)
Formats the time gap as a string, using the specified format.static String
formatPeriodISO(long startMillis, long endMillis)
Formats the time gap as a string.
-
-
-
Field Detail
-
ISO_EXTENDED_FORMAT_PATTERN
public static final String ISO_EXTENDED_FORMAT_PATTERN
Pattern used with
FastDateFormat
andSimpleDateFormat
for the ISO8601 period format used in durations.- See Also:
FastDateFormat
,SimpleDateFormat
, Constant Field Values
-
-
Method Detail
-
formatDurationHMS
public static String formatDurationHMS(long durationMillis)
Formats the time gap as a string.
The format used is ISO8601-like: H:m:s.S.
- Parameters:
durationMillis
- the duration to format- Returns:
- the time as a String
-
formatDurationISO
public static String formatDurationISO(long durationMillis)
Formats the time gap as a string.
The format used is the ISO8601 period format.
This method formats durations using the days and lower fields of the ISO format pattern, such as P7D6TH5M4.321S.
- Parameters:
durationMillis
- the duration to format- Returns:
- the time as a String
-
formatDuration
public static String formatDuration(long durationMillis, String format)
Formats the time gap as a string, using the specified format, and padding with zeros and using the default timezone.
This method formats durations using the days and lower fields of the format pattern. Months and larger are not used.
- Parameters:
durationMillis
- the duration to formatformat
- the way in which to format the duration- Returns:
- the time as a String
-
formatDuration
public static String formatDuration(long durationMillis, String format, boolean padWithZeros)
Formats the time gap as a string, using the specified format. Padding the left hand side of numbers with zeroes is optional and the timezone may be specified.
This method formats durations using the days and lower fields of the format pattern. Months and larger are not used.
- Parameters:
durationMillis
- the duration to formatformat
- the way in which to format the durationpadWithZeros
- whether to pad the left hand side of numbers with 0's- Returns:
- the time as a String
-
formatDurationWords
public static String formatDurationWords(long durationMillis, boolean suppressLeadingZeroElements, boolean suppressTrailingZeroElements)
Formats an elapsed time into a plurialization correct string.
This method formats durations using the days and lower fields of the format pattern. Months and larger are not used.
- Parameters:
durationMillis
- the elapsed time to report in millisecondssuppressLeadingZeroElements
- suppresses leading 0 elementssuppressTrailingZeroElements
- suppresses trailing 0 elements- Returns:
- the formatted text in days/hours/minutes/seconds
-
formatPeriodISO
public static String formatPeriodISO(long startMillis, long endMillis)
Formats the time gap as a string.
The format used is the ISO8601 period format.
- Parameters:
startMillis
- the start of the duration to formatendMillis
- the end of the duration to format- Returns:
- the time as a String
-
formatPeriod
public static String formatPeriod(long startMillis, long endMillis, String format)
Formats the time gap as a string, using the specified format. Padding the left hand side of numbers with zeroes is optional.
- Parameters:
startMillis
- the start of the durationendMillis
- the end of the durationformat
- the way in which to format the duration- Returns:
- the time as a String
-
formatPeriod
public static String formatPeriod(long startMillis, long endMillis, String format, boolean padWithZeros, TimeZone timezone)
Formats the time gap as a string, using the specified format. Padding the left hand side of numbers with zeroes is optional and the timezone may be specified.
When calculating the difference between months/days, it chooses to calculate months first. So when working out the number of months and days between January 15th and March 10th, it choose 1 month and 23 days gained by choosing January->February = 1 month and then calculating days forwards, and not the 1 month and 26 days gained by choosing March -> February = 1 month and then calculating days backwards.
For more control, the Joda-Time library is recommended.
- Parameters:
startMillis
- the start of the durationendMillis
- the end of the durationformat
- the way in which to format the durationpadWithZeros
- whether to pad the left hand side of numbers with 0'stimezone
- the millis are defined in- Returns:
- the time as a String
-
-