public class FastDateParser extends Object implements DateParser, Serializable
SimpleDateFormat
.
To obtain a proxy to a FastDateParser, use FastDateFormat.getInstance(String, TimeZone,
Locale)
or another variation of the factory methods of FastDateFormat
.
Since FastDateParser is thread safe, you can use a static member instance:
private static final DateParser DATE_PARSER = FastDateFormat.getInstance("yyyy-MM-dd");
This class can be used as a direct replacement for SimpleDateFormat
in most
parsing situations. This class is especially useful in multi-threaded server environments.
SimpleDateFormat
is not thread-safe in any JDK version, nor will it be as Sun has closed
the bug/RFE.
Only parsing is supported by this class, but all patterns are compatible with SimpleDateFormat.
The class operates in lenient mode, so for example a time of 90 minutes is treated as 1 hour 30 minutes.
Timing tests indicate this class is as about as fast as SimpleDateFormat in single thread applications and about 25% faster in multi-thread applications.
FastDatePrinter
,
Serialized FormModifier | Constructor and Description |
---|---|
protected |
FastDateParser(String pattern,
TimeZone timeZone,
Locale locale)
Constructs a new FastDateParser.
|
protected |
FastDateParser(String pattern,
TimeZone timeZone,
Locale locale,
Date centuryStart)
Constructs a new FastDateParser.
|
Modifier and Type | Method and Description |
---|---|
boolean |
equals(Object obj)
Compare another object for equality with this object.
|
Locale |
getLocale()
Get the locale used by this parser.
|
String |
getPattern()
Get the pattern used by this parser.
|
TimeZone |
getTimeZone()
Get the time zone used by this parser.
|
int |
hashCode()
Return a hashcode compatible with equals.
|
Date |
parse(String source)
Equivalent to DateFormat.parse(String).
|
Date |
parse(String source,
ParsePosition pos)
This implementation updates the ParsePosition if the parse succeeeds.
|
Object |
parseObject(String source)
Parses text from a string to produce a Date.
|
Object |
parseObject(String source,
ParsePosition pos)
Parse a date/time string according to the given parse position.
|
String |
toString()
Get a string version of this formatter.
|
protected FastDateParser(String pattern, TimeZone timeZone, Locale locale)
FastDateFormat.getInstance(String, TimeZone,
Locale)
or another variation of the factory methods of FastDateFormat
to get a
cached FastDateParser instance.pattern
- non-null SimpleDateFormat
compatible patterntimeZone
- non-null time zone to uselocale
- non-null localeprotected FastDateParser(String pattern, TimeZone timeZone, Locale locale, Date centuryStart)
pattern
- non-null SimpleDateFormat
compatible patterntimeZone
- non-null time zone to uselocale
- non-null localecenturyStart
- The start of the century for 2 digit year parsingpublic String getPattern()
DateParser
getPattern
in interface DateParser
SimpleDateFormat
compatiblepublic TimeZone getTimeZone()
DateParser
The default TimeZone
used to create a Date
when the TimeZone
is
not specified by the format pattern.
getTimeZone
in interface DateParser
public Locale getLocale()
DateParser
getLocale
in interface DateParser
public boolean equals(Object obj)
public int hashCode()
public String toString()
public Object parseObject(String source) throws ParseException
DateParser
parseObject
in interface DateParser
source
- A String
whose beginning should be parsed.java.util.Date
objectParseException
- if the beginning of the specified string cannot be parsed.Format.parseObject(String)
public Date parse(String source) throws ParseException
DateParser
See DateFormat.parse(String)
for more information.
parse
in interface DateParser
source
- A String
whose beginning should be parsed.Date
parsed from the stringParseException
- if the beginning of the specified string cannot be parsed.public Object parseObject(String source, ParsePosition pos)
DateParser
parseObject
in interface DateParser
source
- A String
whose beginning should be parsed.pos
- the parse positionjava.util.Date
objectDateFormat.parseObject(String, ParsePosition)
public Date parse(String source, ParsePosition pos)
SimpleDateFormat.parse(String, ParsePosition)
it is not able to set
the error Index - i.e. ParsePosition.getErrorIndex()
- if the parse fails.
To determine if the parse has succeeded, the caller must check if the current parse
position given by ParsePosition.getIndex()
has been updated. If the input buffer has
been fully parsed, then the index will point to just after the end of the input buffer.
See org.apache.commons.lang3.time.DateParser#parse(java.lang.String, java.text.ParsePosition) Equivalent to DateFormat.parse(String, ParsePosition).
See DateFormat.parse(String, ParsePosition)
for more information.
parse
in interface DateParser
source
- A String
, part of which should be parsed.pos
- A ParsePosition
object with index and error index information as
described above.Date
parsed from the string. In case of error, returns null.Copyright © 2022. All rights reserved.