Class InTimeRange

  • All Implemented Interfaces:
    Predicate<Long>

    public class InTimeRange
    extends AbstractInTimeRange<Long>

    An InTimeRange is a Predicate that tests if a Long representing a timestamp is within a provided range [start, end]. By default the range is inclusive, you can toggle this using the startInclusive and endInclusive booleans.

    If the start is not set then this will be treated as unbounded. Similarly with the end.

    If the test value is null then the predicate will return false.

    This range predicate takes a single value to test, if you want to test a startValue and endValue lies within a range then you can use the InTimeRangeDual predicate.

    The range can also be configured using time offsets from the current system time or a provided start/end time. You can set the start and end offsets using startOffset and endOffset. By default the offset is measured in Days, this can be changed to DAY, HOUR, MINUTE, SECOND and MILLISECOND using the offsetUnit field.

    At the point when test is called on the class the current system time is used to calculate the start and end values based on: System.currentTimeMillis() + offset.

    By default checks are carried out assuming the data will be in milliseconds. If this is not the case you can change the time unit using the timeUnit property.

    You can configure the start and end time strings using one of the following formats:

    • timestamp in milliseconds
    • yyyy/MM
    • yyyy/MM/dd
    • yyyy/MM/dd HH
    • yyyy/MM/dd HH:mm
    • yyyy/MM/dd HH:mm:ss
    You can use a space, '-', '/', '_', ':', '|', or '.' to separate the parts.
    See Also:
    InTimeRange.Builder
    • Constructor Detail

      • InTimeRange

        public InTimeRange()