org.apache.lucene.document
public class DateTools extends Object
This class also helps you to limit the resolution of your dates. Do not save dates with a finer resolution than you really need, as then RangeQuery and PrefixQuery will require more memory and become slower.
Compared to {@link DateField} the strings generated by the methods
in this class take slightly more space, unless your selected resolution
is set to Resolution.DAY
or lower.
Nested Class Summary | |
---|---|
static class | DateTools.Resolution Specifies the time granularity. |
Method Summary | |
---|---|
static String | dateToString(Date date, DateTools.Resolution resolution)
Converts a Date to a string suitable for indexing.
|
static Date | round(Date date, DateTools.Resolution resolution)
Limit a date's resolution. |
static long | round(long time, DateTools.Resolution resolution)
Limit a date's resolution. |
static Date | stringToDate(String dateString)
Converts a string produced by timeToString or
dateToString back to a time, represented as a
Date object.
|
static long | stringToTime(String dateString)
Converts a string produced by timeToString or
dateToString back to a time, represented as the
number of milliseconds since January 1, 1970, 00:00:00 GMT.
|
static String | timeToString(long time, DateTools.Resolution resolution)
Converts a millisecond time to a string suitable for indexing.
|
Parameters: date the date to be converted resolution the desired resolution, see {@link #round(Date, DateTools.Resolution)}
Returns: a string in format yyyyMMddHHmmssSSS
or shorter,
depeding on resolution
; using UTC as timezone
2004-09-21 13:50:11
will be changed to 2004-09-01 00:00:00
when using
Resolution.MONTH
.
Parameters: resolution The desired resolution of the date to be returned
Returns: the date with all values more precise than resolution
set to 0 or 1
1095767411000
(which represents 2004-09-21 13:50:11) will be changed to
1093989600000
(2004-09-01 00:00:00) when using
Resolution.MONTH
.
Parameters: resolution The desired resolution of the date to be returned
Returns: the date with all values more precise than resolution
set to 0 or 1, expressed as milliseconds since January 1, 1970, 00:00:00 GMT
timeToString
or
dateToString
back to a time, represented as a
Date object.
Parameters: dateString the date string to be converted
Returns: the parsed time as a Date object
Throws: ParseException if dateString
is not in the
expected format
timeToString
or
dateToString
back to a time, represented as the
number of milliseconds since January 1, 1970, 00:00:00 GMT.
Parameters: dateString the date string to be converted
Returns: the number of milliseconds since January 1, 1970, 00:00:00 GMT
Throws: ParseException if dateString
is not in the
expected format
Parameters: time the date expressed as milliseconds since January 1, 1970, 00:00:00 GMT resolution the desired resolution, see {@link #round(long, DateTools.Resolution)}
Returns: a string in format yyyyMMddHHmmssSSS
or shorter,
depeding on resolution
; using UTC as timezone