org.apache.commons.lang.time

Class DurationFormatUtils

public class DurationFormatUtils extends Object

Duration formatting utilities and constants. The following table describes the tokens used in the pattern language for formatting.

characterduration element
yyears
Mmonths
ddays
Hhours
mminutes
sseconds
Smilliseconds

Since: 2.1

Version: $Id: DurationFormatUtils.java 583666 2007-10-11 01:38:13Z ggregory $

Author: Apache Ant - DateUtils Stephane Bailliez Stefan Bodewig Stephen Colebourne Gary Gregory

Field Summary
static StringISO_EXTENDED_FORMAT_PATTERN

Pattern used with FastDateFormat and SimpleDateFormat for the ISO8601 period format used in durations.

Constructor Summary
DurationFormatUtils()

DurationFormatUtils instances should NOT be constructed in standard programming.

This constructor is public to permit tools that require a JavaBean instance to operate.

Method Summary
static StringformatDuration(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.

static StringformatDuration(long durationMillis, String format, boolean padWithZeros)

Formats the time gap as a string, using the specified format.

static StringformatDurationHMS(long durationMillis)

Formats the time gap as a string.

The format used is ISO8601-like: H:m:s.S.

static StringformatDurationISO(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.

static StringformatDurationWords(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.

static StringformatPeriod(long startMillis, long endMillis, String format)

Formats the time gap as a string, using the specified format.

static StringformatPeriod(long startMillis, long endMillis, String format, boolean padWithZeros, TimeZone timezone)

Formats the time gap as a string, using the specified format.

static StringformatPeriodISO(long startMillis, long endMillis)

Formats the time gap as a string.

The format used is the ISO8601 period format.

Field Detail

ISO_EXTENDED_FORMAT_PATTERN

public static final String ISO_EXTENDED_FORMAT_PATTERN

Pattern used with FastDateFormat and SimpleDateFormat for the ISO8601 period format used in durations.

See Also: FastDateFormat java.text.SimpleDateFormat

Constructor Detail

DurationFormatUtils

public DurationFormatUtils()

DurationFormatUtils instances should NOT be constructed in standard programming.

This constructor is public to permit tools that require a JavaBean instance to operate.

Method Detail

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 format format 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 format format the way in which to format the duration padWithZeros whether to pad the left hand side of numbers with 0's

Returns: the time as a String

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

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 milliseconds suppressLeadingZeroElements suppresses leading 0 elements suppressTrailingZeroElements suppresses trailing 0 elements

Returns: the formatted text in days/hours/minutes/seconds

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 duration endMillis the end of the duration format 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 duration endMillis the end of the duration format the way in which to format the duration padWithZeros whether to pad the left hand side of numbers with 0's timezone the millis are defined in

Returns: the time as a String

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 format endMillis the end of the duration to format

Returns: the time as a String

Copyright © 2001-2010 - Apache Software Foundation