org.joda.time.format
Class PeriodFormatter
java.lang.Object
org.joda.time.format.PeriodFormatter
public class PeriodFormatter
extends java.lang.Object
Controls the printing and parsing of a time period to and from a string.
This class is the main API for printing and parsing used by most applications.
Instances of this class are created via one of three factory classes:
An instance of this class holds a reference internally to one printer and
one parser. It is possible that one of these may be null, in which case the
formatter cannot print/parse. This can be checked via the
isPrinter()
and
isParser()
methods.
The underlying printer/parser can be altered to behave exactly as required
by using a decorator modifier:
This returns a new formatter (instances of this class are immutable).
The main methods of the class are the
printXxx
and
parseXxx
methods. These are used as follows:
// print using the default locale
String periodStr = formatter.print(period);
// print using the French locale
String periodStr = formatter.withLocale(Locale.FRENCH).print(period);
// parse using the French locale
Period date = formatter.withLocale(Locale.FRENCH).parsePeriod(str);
- Brian S O'Neill
- Stephen Colebourne
PeriodFormatter
public PeriodFormatter(PeriodPrinter printer,
PeriodParser parser)
Creates a new formatter, however you will normally use the factory
or the builder.
printer
- the internal printer, null if cannot printparser
- the internal parser, null if cannot parse
getLocale
public Locale getLocale()
Gets the locale that will be used for printing and parsing.
getParseType
public PeriodType getParseType()
Gets the PeriodType that will be used for parsing.
getParser
public PeriodParser getParser()
Gets the internal parser object that performs the real parsing work.
getPrinter
public PeriodPrinter getPrinter()
Gets the internal printer object that performs the real printing work.
isParser
public boolean isParser()
Is this formatter capable of parsing.
isPrinter
public boolean isPrinter()
Is this formatter capable of printing.
- true if this is a printer
parseInto
public int parseInto(ReadWritablePeriod period,
String text,
int position)
Parses a period from the given text, at the given position, saving the
result into the fields of the given ReadWritablePeriod. If the parse
succeeds, the return value is the new text position. Note that the parse
may succeed without fully reading the text.
The parse type of the formatter is not used by this method.
If it fails, the return value is negative, but the period may still be
modified. To determine the position where the parse failed, apply the
one's complement operator (~) on the return value.
period
- a period that will be modifiedtext
- text to parseposition
- position to start parsing from
- new position, if negative, parse failed. Apply complement
operator (~) to get position of failure
parseMutablePeriod
public MutablePeriod parseMutablePeriod(String text)
Parses a period from the given text, returning a new MutablePeriod.
- parsed value in a MutablePeriod object
parsePeriod
public Period parsePeriod(String text)
Parses a period from the given text, returning a new Period.
- parsed value in a Period object
print
public String print(ReadablePeriod period)
Prints a ReadablePeriod to a new String.
period
- the period to format, not null
printTo
public void printTo(StringBuffer buf,
ReadablePeriod period)
Prints a ReadablePeriod to a StringBuffer.
buf
- the formatted period is appended to this bufferperiod
- the period to format, not null
printTo
public void printTo(Writer out,
ReadablePeriod period)
throws IOException
Prints a ReadablePeriod to a Writer.
out
- the formatted period is written outperiod
- the period to format, not null
withLocale
public PeriodFormatter withLocale(Locale locale)
Returns a new formatter with a different locale that will be used
for printing and parsing.
A PeriodFormatter is immutable, so a new instance is returned,
and the original is unaltered and still usable.
locale
- the locale to use
withParseType
public PeriodFormatter withParseType(PeriodType type)
Returns a new formatter with a different PeriodType for parsing.
A PeriodFormatter is immutable, so a new instance is returned,
and the original is unaltered and still usable.
type
- the type to use in parsing
Copyright (c) 2001-2006 - Joda.org