java.lang.Object | |
↳ | org.apache.lucene.document.DateTools |
Provides support for converting dates to strings and vice-versa. The strings are structured so that lexicographic sorting orders them by date, which makes them suitable for use as field values and search terms.
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 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.
Another approach is NumericUtils
, which provides
a sortable binary representation (prefix encoded) of numeric values, which
date/time are.
For indexing a Date
or Calendar, just get the unix timestamp as
long
using getTime()
or getTimeInMillis()
and
index this as a numeric value with NumericField
and use NumericRangeQuery
to query it.
Nested Classes | |||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
DateTools.Resolution | Specifies the time granularity. |
Public Methods | |||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
Converts a Date to a string suitable for indexing.
| |||||||||||
Limit a date's resolution.
| |||||||||||
Limit a date's resolution.
| |||||||||||
Converts a string produced by
timeToString or
dateToString back to a time, represented as a
Date object. | |||||||||||
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. | |||||||||||
Converts a millisecond time to a string suitable for indexing.
|
[Expand]
Inherited Methods | |||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
From class
java.lang.Object
|
Converts a Date to a string suitable for indexing.
date | the date to be converted |
---|---|
resolution | the desired resolution, see
round(Date, DateTools.Resolution) |
yyyyMMddHHmmssSSS
or shorter,
depending on resolution
; using GMT as timezone
Limit a date's resolution. For example, the date 1095767411000
(which represents 2004-09-21 13:50:11) will be changed to
1093989600000
(2004-09-01 00:00:00) when using
Resolution.MONTH
.
resolution | The desired resolution of the date to be returned |
---|
resolution
set to 0 or 1, expressed as milliseconds since January 1, 1970, 00:00:00 GMT
Limit a date's resolution. For example, the date 2004-09-21 13:50:11
will be changed to 2004-09-01 00:00:00
when using
Resolution.MONTH
.
resolution | The desired resolution of the date to be returned |
---|
resolution
set to 0 or 1
Converts a string produced by timeToString
or
dateToString
back to a time, represented as a
Date object.
dateString | the date string to be converted |
---|
ParseException | if dateString is not in the
expected format
|
---|
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.
dateString | the date string to be converted |
---|
ParseException | if dateString is not in the
expected format
|
---|
Converts a millisecond time to a string suitable for indexing.
time | the date expressed as milliseconds since January 1, 1970, 00:00:00 GMT |
---|---|
resolution | the desired resolution, see
round(long, DateTools.Resolution) |
yyyyMMddHHmmssSSS
or shorter,
depending on resolution
; using GMT as timezone