public class CalendarParser
extends java.lang.Object
Modifier and Type | Field and Description |
---|---|
private static int |
CENTURY_OFFSET
Adjustment for two-digit years will break in 2050.
|
static int |
DD_MM_YY
day/month/year order.
|
static int |
DD_YY_MM
day/year/month order.
|
private static boolean |
DEBUG
set to true to enable debugging.
|
static int |
MM_DD_YY
month/day/year order.
|
static int |
MM_YY_DD
month/year/day order.
|
static int |
MONTH_AFTER_DAY
bit indicating that the month comes after the day.
|
static int |
MONTH_BEFORE_DAY
bit indicating that the month comes before the day.
|
private static java.lang.String[][] |
MONTHS
list of month abbreviations and names.
|
private static int |
PLACE_HOUR
Parsing hour value from time string.
|
private static int |
PLACE_MILLI
Parsing millisecond value from time string.
|
private static int |
PLACE_MINUTE
Parsing minute value from time string.
|
private static int |
PLACE_SECOND
Parsing second value from time string.
|
private static int |
PLACE_UNKNOWN
Unknown place in time parsing.
|
private static int |
UNSET
value indicating an unset variable.
|
private static java.lang.String[] |
WEEKDAY_NAMES
list of weekday names.
|
static int |
YEAR_AFTER_DAY
bit indicating that the year comes after the day.
|
static int |
YEAR_AFTER_MONTH
bit indicating that the year comes after the month.
|
static int |
YEAR_BEFORE_DAY
bit indicating that the year comes before the day.
|
static int |
YEAR_BEFORE_MONTH
bit indicating that the year comes before the month.
|
static int |
YY_DD_MM
year/day/month order.
|
static int |
YY_MM_DD
year/month/day order.
|
private static java.lang.String[] |
zoneNames
list of time zone names.
|
Constructor and Description |
---|
CalendarParser() |
Modifier and Type | Method and Description |
---|---|
private static void |
appendTimeString(java.lang.StringBuffer buf,
java.util.Calendar cal,
boolean needSpace)
Append formatted time string to the string buffer.
|
static java.lang.String |
getOrderString(int order)
Return a string representation of the order value.
|
private static int |
getOrdinalNumber(java.lang.String str)
Translate a string representation of an ordinal number to the
appropriate numeric value.
For example, "1st" would return 1, "23rd" would return 23, etc. |
private static java.lang.String |
getTimePlaceString(int place)
Get name of current place in time.
|
private static boolean |
isWeekdayName(java.lang.String str)
Determine is the supplied string is a value weekday name.
|
private static java.lang.String[] |
loadTimeZoneNames()
Load list of time zones if sun.util.calendar.ZoneInfo exists.
|
static int |
monthNameToNumber(java.lang.String str)
Convert the supplied month name to its numeric representation.
|
static java.util.Calendar |
parse(java.lang.String dateStr)
Extract a date from a string, defaulting to YY-MM-DD
order for all-numeric strings.
|
static java.util.Calendar |
parse(java.lang.String dateStr,
int order)
Extract a date from a string.
|
static java.util.Calendar |
parse(java.lang.String dateStr,
int order,
boolean ignoreChanges)
Extract a date from a string.
|
private static void |
parseNonNumericToken(java.lang.String dateStr,
ParserState state,
java.lang.String token)
Parse a non-numeric token from the date string.
|
private static void |
parseNumericBlob(java.lang.String dateStr,
ParserState state,
int val)
Split a large numeric value into a year/month/date values.
|
private static void |
parseNumericToken(java.lang.String dateStr,
ParserState state,
int val)
Use a numeric token from the date string.
|
private static java.util.Calendar |
parseString(java.lang.String dateStr,
int order,
boolean ignoreChanges)
Extract a date from the supplied string.
|
private static void |
parseTime(java.lang.String dateStr,
ParserState state,
java.lang.String timeStr)
Parse a time string.
|
private static void |
parseTimeZoneOffset(java.lang.String dateStr,
ParserState state,
java.lang.String zoneStr)
Parse a time zone offset string.
|
static java.lang.String |
prettyString(java.util.Calendar cal)
Return a printable representation of the date.
|
static java.lang.String |
toSQLString(java.util.Calendar cal)
Return a string representation of the date suitable for use in
an SQL statement.
|
static java.lang.String |
toString(java.util.Calendar cal)
Return a basic representation of the string.
|
public static final int YEAR_BEFORE_MONTH
public static final int YEAR_BEFORE_DAY
public static final int MONTH_BEFORE_DAY
public static final int YEAR_AFTER_MONTH
public static final int YEAR_AFTER_DAY
public static final int MONTH_AFTER_DAY
public static final int DD_MM_YY
public static final int MM_DD_YY
public static final int MM_YY_DD
public static final int DD_YY_MM
public static final int YY_DD_MM
public static final int YY_MM_DD
private static final java.lang.String[] zoneNames
private static final int PLACE_UNKNOWN
private static final int PLACE_HOUR
private static final int PLACE_MINUTE
private static final int PLACE_SECOND
private static final int PLACE_MILLI
private static final int CENTURY_OFFSET
private static final int UNSET
private static final boolean DEBUG
private static final java.lang.String[] WEEKDAY_NAMES
private static final java.lang.String[][] MONTHS
private static final void appendTimeString(java.lang.StringBuffer buf, java.util.Calendar cal, boolean needSpace)
buf
- string buffercal
- object containing timeneedSpace
- true if a space character should be inserted
before any datapublic static final java.lang.String getOrderString(int order)
order
- orderprivate static final int getOrdinalNumber(java.lang.String str)
str
- ordinal stringprivate static final java.lang.String getTimePlaceString(int place)
place
- place IDprivate static final boolean isWeekdayName(java.lang.String str)
str
- weekday name to checkprivate static final java.lang.String[] loadTimeZoneNames()
public static int monthNameToNumber(java.lang.String str)
str
- month namepublic static final java.util.Calendar parse(java.lang.String dateStr) throws CalendarParserException
dateStr
- date stringCalendarParserException
- if there was a problem
parsing the string.public static final java.util.Calendar parse(java.lang.String dateStr, int order) throws CalendarParserException
dateStr
- date stringorder
- order in which pieces of numeric strings
are assigned (should be one of YY_MM_DD,
MM_DD_YY, etc.)CalendarParserException
- if there was a problem
parsing the string.public static final java.util.Calendar parse(java.lang.String dateStr, int order, boolean ignoreChanges) throws CalendarParserException
dateStr
- date stringorder
- order in which pieces of numeric strings
are assigned (should be one of YY_MM_DD,
MM_DD_YY, etc.)ignoreChanges
- if true, ignore date changes such as
Feb 31 being changed to Mar 3.CalendarParserException
- if there was a problem
parsing the string.private static final void parseNonNumericToken(java.lang.String dateStr, ParserState state, java.lang.String token) throws CalendarParserException
dateStr
- full date stringstate
- parser statetoken
- string being parsedCalendarParserException
- if there was a problem
parsing the tokenprivate static final void parseNumericBlob(java.lang.String dateStr, ParserState state, int val) throws CalendarParserException
dateStr
- full date stringstate
- parser stateval
- numeric value to useCalendarParserException
- if there was a problem
splitting the valueprivate static final void parseNumericToken(java.lang.String dateStr, ParserState state, int val) throws CalendarParserException
dateStr
- full date stringstate
- parser stateval
- numeric value to useCalendarParserException
- if there was a problem
parsing the tokenprivate static final java.util.Calendar parseString(java.lang.String dateStr, int order, boolean ignoreChanges) throws CalendarParserException
dateStr
- string to parseorder
- year/month/day order (YY_MM_DD, MM_DD_YY, etc.)ignoreChanges
- if true, ignore date changes such as
Feb 31 being changed to Mar 3.CalendarParserException
- if no valid date was found.private static final void parseTime(java.lang.String dateStr, ParserState state, java.lang.String timeStr) throws CalendarParserException
dateStr
- full date stringstate
- parser statetimeStr
- string containing colon-separated timeCalendarParserException
- if there is a problem with the timeprivate static final void parseTimeZoneOffset(java.lang.String dateStr, ParserState state, java.lang.String zoneStr) throws CalendarParserException
dateStr
- full date stringstate
- parser statezoneStr
- string containing colon-separated time zone offsetCalendarParserException
- if there is a problem with the timepublic static final java.lang.String prettyString(java.util.Calendar cal)
cal
- calendar to convert to a stringpublic static final java.lang.String toString(java.util.Calendar cal)
cal
- calendar to convert to a stringpublic static final java.lang.String toSQLString(java.util.Calendar cal)
cal
- calendar to convert to a string